HSTS (HTTP Strict Transport Security) ist ein Sicherheitsmechanismus, mit dem eine Website Browsern vorgibt, sie für eine festgelegte Zeit nur noch über HTTPS aufzurufen. Der Server teilt das über den Response-Header Strict-Transport-Security mit. Danach setzt der Browser jede http://-Adresse dieser Domain selbst auf https:// um.
Wie funktioniert HSTS?
Der Header muss über eine HTTPS-Verbindung kommen. Über unverschlüsseltes HTTP gesendet, ignorieren Browser ihn, so schreibt es RFC 6797 vor. Pflichtangabe ist max-age, die Dauer in Sekunden, für die sich der Browser die Regel merkt. Mit includeSubDomains gilt die Regel auch für alle Subdomains. Jede neue Antwort mit dem Header verlängert die Laufzeit, und max-age=0 löscht die Regel.
Solange sie gilt, bricht der Browser bei Zertifikatsfehlern die Verbindung ab, und Nutzer können die Warnung nicht übergehen. Läuft ein Zertifikat ab, ist die Domain für Besucher mit gespeicherter Regel nicht mehr erreichbar.
Beim allerersten Besuch kennt der Browser den Header noch nicht. Diese Lücke schließt die Preload-Liste, die in Chrome, Firefox und Edge eingebaut ist. Die Aufnahme über hstspreload.org setzt max-age von mindestens 31536000 Sekunden (ein Jahr), includeSubDomains, die Direktive preload und eine Weiterleitung von HTTP auf HTTPS voraus. Ein Austrag dauert nach Angabe des Dienstes Monate. Die Preload-Liste gehört laut MDN nicht zur HSTS-Spezifikation.
Für die Suchmaschinenoptimierung bleibt die serverseitige 301-Weiterleitung von HTTP auf HTTPS nötig, weil Clients ohne gespeicherte Regel den Header erst nach einem HTTPS-Kontakt kennen.
Beispiel
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
Häufige Fehler
includeSubDomainsbei Subdomains ohne HTTPS. Auch interne oder vergessene Subdomains müssen dann per HTTPS erreichbar sein.- Preload zu früh. Wer die Domain in die Liste einträgt, bindet sich langfristig an HTTPS.
- Header über HTTP. Dort wird er ignoriert.
Häufige Fragen
Wie lässt sich HSTS ausschalten?
Der Server sendet über HTTPS max-age=0. Browser mit gespeicherter Regel löschen sie beim nächsten Abruf. Bei Domains auf der Preload-Liste hilft das erst nach dem Austrag aus der Liste.
Ersetzt HSTS die Weiterleitung auf HTTPS? Nein, beide ergänzen sich. Die Weiterleitung bedient jeden Client, HSTS spart wiederkehrenden Browsern den ersten unsicheren Request.
Quellen
- RFC 6797: HTTP Strict Transport Security (HSTS)rfc-editor.org
- Strict-Transport-Security – MDN Web Docsdeveloper.mozilla.org
- HSTS Preload List Submissionhstspreload.org
Stand: