radar ThreatPulse

HSTS Header einrichten

Strict-Transport-Security (HSTS) ist einer der wichtigsten Security Headers. Hier erfährst du, was HSTS macht, warum er kritisch ist und wie du ihn für Apache, Nginx und WordPress einrichtest.

Prüfe, ob deine Website den HSTS Header korrekt setzt:

radar Jetzt Headers prüfen

Was ist HSTS?

HSTS steht für HTTP Strict Transport Security. Es ist ein HTTP-Response-Header, der dem Browser mitteilt: "Diese Website darf ausschließlich über HTTPS aufgerufen werden, auch wenn der Nutzer http:// eingibt oder auf einen HTTP-Link klickt."

Ohne HSTS kann ein Angreifer einen sogenannten Downgrade-Angriff durchführen: Er leitet die erste Verbindung von HTTPS auf HTTP um und kann dann den gesamten Datenverkehr mitlesen. HSTS verhindert das, indem der Browser sich merkt, dass die Seite nur über HTTPS erreichbar sein darf.

warning

ThreatPulse bewertet einen fehlenden HSTS-Header als kritisch. Zusätzlich wird gewarnt, wenn der max-age-Wert unter 6 Monaten liegt.

HSTS auf Apache einrichten

Füge folgende Zeile in deine .htaccess-Datei oder in die <VirtualHost>-Konfiguration ein:

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

Stelle sicher, dass das Apache-Modul mod_headers aktiviert ist:

sudo a2enmod headers
sudo systemctl restart apache2

HSTS auf Nginx einrichten

Füge folgende Zeile in den server-Block deiner HTTPS-Konfiguration ein:

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

Wichtig: Der Header darf nur im HTTPS-Server-Block stehen, nicht im HTTP-Block, der auf HTTPS weiterleitet. Das always-Keyword sorgt dafür, dass der Header auch bei Fehlerseiten (z. B. 404) gesendet wird.

HSTS in WordPress einrichten

Wenn du keinen Zugang zur Server-Konfiguration hast, kannst du HSTS über ein WordPress-Plugin einrichten. Empfehlenswerte Optionen:

Die Plugin-Lösung ist einfacher, aber weniger performant als die Server-Konfiguration, weil PHP bei jedem Request geladen werden muss, bevor der Header gesetzt wird.

Die Parameter im Detail

max-age

Gibt in Sekunden an, wie lange der Browser sich merken soll, dass die Seite nur über HTTPS erreichbar ist. Der empfohlene Wert ist 31536000 (1 Jahr). Ein zu kurzer Wert (unter 6 Monaten) schwächt den Schutz. ThreatPulse warnt ab hier.

includeSubDomains

Gilt die HSTS-Policy auch für alle Subdomains (z. B. blog.example.de, shop.example.de). Empfohlen, wenn alle Subdomains über HTTPS laufen. Vorsicht: Wenn eine Subdomain kein SSL hat, ist sie mit diesem Parameter nicht mehr erreichbar.

preload

Optional: Meldet deine Domain für die HSTS-Preload-Liste an, die in alle großen Browser eingebaut ist. Damit ist deine Domain ab dem allerersten Besuch geschützt, nicht erst nach dem ersten Aufruf. Die Anmeldung erfolgt über hstspreload.org.

lightbulb

Starte mit einem kurzen max-age (z. B. 300 = 5 Minuten) und teste, ob alles korrekt funktioniert. Erst wenn du sicher bist, erhöhe auf den vollen Wert von 31536000.

Häufige Fehler bei HSTS

rocket_launch
HSTS und Security Headers einrichten lassen?
Wir konfigurieren HSTS und alle weiteren relevanten Security Headers für deine Website, korrekt, getestet und sofort wirksam.
Kostenlos beraten lassen arrow_forward