Apache2, Http2 – instalacja, konfiguracja

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