HSTS is een protocol waarmee aangegeven wordt dat een website voor bijvoorbeeld het komende half jaar alleen nog maar benaderd mag worden via een beveiligde verbinding (HTTPS). Er dient dus altijd eerst een SSL certificaat geïnstalleerd te worden, voordat je dit gaat gebruiken.
Op server niveau hebben we dit niet aangezet. Daarmee zou geforceerd worden dat alle websites die ooit een certificaat hebben gebruikt, deze ook moeten blijven gebruiken. Dat is namelijk waar HSTS voor staat: als de website eenmaal bezocht is met een HTTPS verbinding, wordt niet door de zelfde browser niet meer geaccepteerd als de website daarna benaderd wordt zonder HTTPS. Deze controle wordt een half jaar "onthouden" door de browser.
Als je HSTS wilt aanzetten, dan kan je dat eenvoudig doen door in de hoofdmap (public_html) in het .htaccess bestand de volgende regel toe te voegen, bij voorkeur bovenaan:
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains" env=HTTPS
Op https://www.internet.nl/ kan je testen of de installatie gelukt is.
HSTS Preload
Wil je gebruik maken van HSTS? Dan is het mogelijk jouw domein of domeinen aan te melden op de HSTS Preload lijst. Deze lijst wordt door meerdere browsers gebruikt en helpt de browsers bij te houden welke domeinen enkel via HSTS benaderd mogen worden. Je kunt jouw domein of domeinen aanmelden voor HSTS Preload op de website https://hstspreload.org
Je kunt jouw domein alleen aanmelden voor HSTS Preload als dit domein aan diverse voorwaarden voldoet. Het gaat om de volgende voorwaarden:
- Het domein moet een geldig certificaat hebben
- Alle requests op HTTP moeten doorverwezen worden naar hetzelfde domein op HTTPS, niet naar een algemeen domein
- HSTS moet geconfigureerd zijn met IncludeSubDomains. Dit wil simpelweg zeggen dat niet alleen het hoofddomein, maar ook alle subdomeinen via HTTPS benaderd worden
- De HSTS header moet in de Preload aanwezig zijn