Sichere Apache SSL Konfiguration

Eine Standard Apache-Installation unter EL9 (AlmaLinux 9.1) hat bei SSL Labs Server Test "nur" eine Bewertung von "A". Mit wenigen Anpassungen kann hier ein "A+" erreicht werden.

Dies funktioniert auch bei älteren Linux-Distributionen und führen auch dort zu einem "A+" (CentOS 7.x hat beispielsweise in der Standardkonfiguration nur ein "B")

Die Datei /etc/httpd/conf.d/ssl.conf um folgende Zeilen ergänzen (am Ende aber noch innerhalb des VirtualHost):

<If "%{SERVER_PORT} == '443'">
 Header always set Strict-Transport-Security "max-age=63072000"
</If>
SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384
SSLHonorCipherOrder off
SSLSessionTickets off

Danach Apache neu starten:

systemctl restart httpd.service

Nun sollte der Test ein A+ ergeben.

Folgende Einstellungen sind ebenfalls zu empfehlen, können jedoch die Funktionalität gewisser Scripte negativ beeinflussen und sollten sauber getestet werden:

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]
Header set X-Content-Type-Options "nosniff"
Header append X-Frame-Options "SAMEORIGIN"
Header always edit Set-Cookie (.*) "$1; HttpOnly; SameSite=Strict; Secure"
Header set X-XSS-Protection "1; mode=block"
Header unset X-Powered-By