blueredix logo
medium missing-hsts

HSTS nicht aktiviert

HSTS sagt Browsern "für diese Domain immer HTTPS, nie reines HTTP". Ohne HSTS bleibt der allererste Verbindungsversuch ungeschützt; ein Angreifer kann Besucher:innen dadurch beliebig lange auf der ungesicherten Variante halten.

Worum es geht

HSTS ist eine kleine Anweisung, die Ihre Webseite an Browser schickt: “Diese Domain ist HTTPS-only, nie wieder reines HTTP, auch wenn die Person es tippt, auch wenn ein Server umleitet”. Hat ein Browser die Anweisung einmal gesehen, merkt er sie sich für die angegebene Dauer und lehnt jede Klartext-Variante stillschweigend ab.

Ihre Seite schickt diese Anweisung derzeit nicht. HTTPS kann sauber eingerichtet sein, Ihr Server kann reines HTTP sogar auf HTTPS umleiten, aber ohne HSTS bleibt der allererste Verbindungsversuch eines frischen Browsers reines HTTP.

Warum das wichtig ist

Selbst mit eingerichtetem HTTPS schickt ein frischer Browser den ersten Request an Ihre Domain als reines HTTP, sobald die Person die Adresse ohne https:// getippt hat. Ein Angreifer im Netz (etwa in einem öffentlichen WLAN) kann genau diesen einen Klartext-Request abfangen, ihn nie an Ihren Server weiterleiten und stattdessen eine gefälschte Variante ausliefern.

HSTS schließt das Fenster. Sobald ein Browser einmal über HTTPS ankommt, hält er die Anweisung fest und versucht für Ihre Domain nie wieder reines HTTP.

Bleibt eine einzelne Lücke: der allererste Besuch überhaupt, bevor der Browser die Anweisung gesehen hat. Die schließen Sie über die HSTS-Preload-Liste, die in jeden großen Browser fest verdrahtet ist. Nach Aufnahme weigert sich auch ein brandneuer Browser, beim ersten Versuch reines HTTP zu sprechen.

So beheben Sie das

Wer Ihren Webserver verwaltet, ergänzt eine einzelne Zeile in der Antwort-Konfiguration. Standardtext:

Strict-Transport-Security: max-age=63072000; includeSubDomains; preload

Drei Teile:

  • max-age=63072000 sind zwei Jahre in Sekunden, das Minimum für die Aufnahme in die Preload-Liste.
  • includeSubDomains erweitert den Schutz auf alle Subdomains (shop.ihre-domain.de, mail.ihre-domain.de etc.). Nur einschalten, wenn jede Subdomain HTTPS-only ist.
  • preload signalisiert die Absicht, in die Preload-Liste aufgenommen zu werden.

Übliche Server-Konfiguration:

nginx:

add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" always;

Apache:

Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains; preload"

Caddy:

header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload"

Läuft die Konfiguration ein paar Wochen sauber, die Domain auf hstspreload.org zur Preload-Aufnahme einreichen. Die Aufnahme ist schwer rückgängig zu machen. Nur einreichen, wenn Sie sicher sind, dass jeder Host unter Ihrer Domain HTTPS sauber ausliefert.

Vorsicht beim Rollout: Wer am ersten Tag direkt mit dem vollen Zwei-Jahres-Wert startet und nachträglich eine HTTP-only-Subdomain findet (etwa ein vergessenes internes Staging), macht sie für zwei Jahre unerreichbar. Sicherer Pfad: mit max-age=300 für ein paar Tage starten, dann max-age=86400 für eine Woche, dann auf den vollen Wert hochziehen. So haben Sie Zeit, etwaige Nachzügler- Subdomains zu finden.

Mehr dazu