HSTS ist eine Anweisung des Servers an den Browser, diese Domain künftig nur noch verschlüsselt aufzurufen. Die Abkürzung steht für HTTP Strict Transport Security, auf Deutsch etwa strenge Transportsicherheit. Übermittelt wird sie als HTTP-Header in jeder Antwort.
- HSTS
Eine Anweisung des Servers, diese Domain künftig nur noch verschlüsselt aufzurufen.
Beispiel: „Nach dem Umzug haben wir HSTS mit einer Laufzeit von zwei Jahren gesetzt.“Auch: HTTP Strict Transport Security. Der Header nennt eine Gültigkeitsdauer und kann die Unterdomains einschließen.
Abgrenzung zur Weiterleitung: Ein 301 schickt den Browser beim Aufruf um, HSTS verhindert, dass er es überhaupt unverschlüsselt versucht.
Was HSTS verhindert
Den ersten unverschlüsselten Aufruf. Wer eine Adresse ohne Protokoll eintippt, landet zuerst bei HTTP und wird von dort weitergeleitet. Genau diese eine Anfrage kann auf dem Weg abgefangen und auf eine andere Seite umgebogen werden, ohne dass der Besucher etwas merkt.
Mit HSTS merkt sich der Browser die Vorgabe und ruft die Domain für die genannte Dauer von sich aus verschlüsselt auf. Die Weiterleitung fällt weg, was zugleich eine Netzrunde und damit ein Stück Ladezeit spart.
Wie HSTS gesetzt wird
Als Header in der Serverkonfiguration oder in der .htaccess. Üblich ist eine Dauer von einem Jahr, oft zusammen mit dem Zusatz für alle Unterdomains. Dazu gehört, dass jede Unterdomain wirklich ein gültiges Zertifikat hat.
Darüber hinaus gibt es die Preload-Liste, die in den Browsern mitgeliefert wird. Wer dort einträgt, ist schon beim allerersten Aufruf geschützt, auch ohne vorherigen Besuch. Der Eintrag wird beantragt, und die Aufnahme dauert Wochen.
Wo bei HSTS Vorsicht geboten ist
Bei der Rücknahme. Die Vorgabe steckt im Browser des Besuchers, und sie lässt sich von außen nicht widerrufen. Wer HSTS mit langer Laufzeit und allen Unterdomains setzt und danach eine Unterdomain ohne Zertifikat braucht, hat sie für alle bisherigen Besucher gesperrt.
Deshalb die Reihenfolge: erst alles verschlüsselt ausliefern, dann mit kurzer Laufzeit testen, dann verlängern, und in die Preload-Liste erst eintragen, wenn das stabil läuft. Für eine Entwicklungs- oder Staging-Umgebung unter derselben Domain gilt das besonders.