Kurz howto HPKP HSTS Apache header

Noch ein kurzer Aufbau zum Artikel Let’s Encrypt.

Besonderer HINWEIS bei einer Fehlkonfiguration kann es zu einer nicht Erreichbarkeit der Website führen. Bitte vor der Konfiguration an anderer Stelle schlau machen, was die beiden Header in Kombination ihrer Optionen genau bewerkstelligen.

HPKP HTTP Public Key Pinning

Pin Berechnung, vom Let’s Encrypt Zertifikat.

:~$ openssl x509 -in fullchain1.pem -pubkey -noout  | openssl rsa -pubin -outform der  | openssl dgst -sha256 -binary  | openssl enc -base64

writing RSA key
hC0t/0LJdMkz4BPa4PZsOV+vLfTAaU24a175ApwzgaQ=

In gleicher Weise für die beiden Intermediate Certificates letsencryptauthorityx1.pem und letsencryptauthorityx2.pem von Let’s Encrypt verfahren. Zu finden unter Let’s Encrypt Certificates. Entsprechend runter laden und Pins berechnen. Diese dann in die Apache SSL Konfiguration als zusätzlichen Header eintragen.

Header always set Public-Key-Pins "pin-sha256=\"hC0t/0LJdMkz4BPa4PZsOV+vLfTAaU24a175ApwzgaQ=\"; pin-sha256=\"YLh1dUR9y6Kja30RrAn7JKnbQG/uEtLMkBgFF2Fuihg=\"; pin-sha256=\"sRHdihwgkaib1P1gxX8HFszlD+7/gTfNvuAybgLPNis=\"; max-age=86400"

HSTS HTTP Strict Transport Security

Es handelt sich um ein Webserver Header, der einem unterstützenden Browser mitteilt, wie lange eine Website unter ihrer Domain per SSL Verschlüsselung zur Verfügung steht. Bei einem erneuten Besuch innerhalb der Frist greift der Browser Direkt per HTTPS auf die Website zu.

Apache SSL Konfiguration Header eintragen.

Header always set Strict-Transport-Security "max-age=15552000"

max-age=15552000 entspricht 180 Tage. Bei HSTS kürzer als die 180 Tagen, kommt es zu einer „too short“ Meldung bei einer Überprüfung mittels Qualys SSL Server Test.

Auf includeSubDomains wurde bewusst verzichtet.