HTTP Strict Transport Layer Security (HSTS)
Wo ich schonmal dabei war an den SSL-Zertifikaten zu schrauben habe ich gleich noch HSTS angeknipst. HSTS zwingt den Browser, für eine gewisse Zeit, nur noch HTTPS-Verbindungen zu einem Server/einer Domain herzustellen und verhindert so bestimmte Formen von Man-in-the-middle-Angriffen.
Die Aktivierung im Apache geht sehr einfach. Ich gehe davon aus, dass das SSL-Setup bereits steht und funktioniert.
Zunächst muss mod_headers
aktiviert werden, zusätzlich aktivieren wir noch mod_rewrite
:
a2enmod headers
a2enmod rewrite
Außerdem sollte man, in der VirtualHost-Konfiguration, dafür sorgen dass der Server alle HTTP-Requests auf HTTPS umleitet:
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]
Anschließend fügt man die folgende Zeile in die Apache-Konfiguration ein, entweder im VirtualHost oder global:
Header always set Strict-Transport-Security “max-age=31536000; includeSubDomains”
Nach einem Neustart des Apache-Servers ist man auch schon fertig. Ob alles geklappt hat lässt sich z.B. mittels https://www.ssllabs.com/ssltest/ überprüfen.
Wer einen schnellen Check bevorzugt kann natürlich auch einfach curl
verwenden:
curl -I https://www.example.org
HTTP/1.1 200 OK
Date: Wed, 30 Dec 2015 22:33:17 GMT
Server: Apache
Expires: Wed, 11 Jan 1984 05:00:00 GMT
Cache-Control: no-cache, must-revalidate, max-age=0
Pragma: no-cache
X-XSS-Protection: 1; mode=block
X-Frame-Options: sameorigin
Strict-Transport-Security: max-age=31536000;includeSubDomains
X-content-age: 18
X-age-hash: 7853f976c9
Vary: Accept-Encoding
Content-Type: text/html; charset=UTF-8