Apache z mpm_event, PHP-FPM i HTTP/2
# apt install -y apache2 # a2dismod mpm_prefork php8.5 2>/dev/null # a2enmod mpm_event proxy_fcgi setenvif http2 ssl headers rewrite # a2enconf php8.5-fpm
Globalne włączenie HTTP/2 w pliku /etc/apache2/conf-available/http2.conf:
Protocols h2 http/1.1
Ukrycie informacji o serwerze: edytuj /etc/apache2/conf-available/security.conf i ustaw:
ServerTokens Prod ServerSignature Off TraceEnable Off
Podstawowe nagłówki bezpieczeństwa w /etc/apache2/conf-available/security-headers.conf:
Header always set X-Content-Type-Options "nosniff" Header always set X-Frame-Options "SAMEORIGIN" Header always set Referrer-Policy "strict-origin-when-cross-origin" Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
HSTS włącz dopiero wtedy, gdy HTTPS na pewno działa na wszystkich subdomenach, bo przeglądarki zapamiętują go na rok.
# a2enconf http2 security-headers # apache2ctl configtest && systemctl restart apache2 php8.5-fpm
Certyfikat Let’s Encrypt (domena musi już wskazywać na serwer):
# apt install -y certbot python3-certbot-apache # certbot --apache -d twojadomena.pl -d www.twojadomena.pl
Weryfikacja HTTP/2:
curl -sI --http2 https://twojadomena.pl | head -1 # powinno pokazać HTTP/2 200