HSTS auf Hetzner konfigurieren
HTTP Strict Transport Security auf Ihrem Hetzner vServer oder Cloud Server einrichten — von Let's Encrypt über HSTS-Header bis Preload. Mit Nginx- und Apache-Konfigurationen.
HTTP Strict Transport Security auf Hetzner
HTTP Strict Transport Security (HSTS) weist Browser an, ausschließlich verschlüsselte HTTPS-Verbindungen zu verwenden. Der Header verhindert SSL-Stripping-Angriffe, bei denen ein Angreifer die Verbindung auf unverschlüsseltes HTTP herabstuft. HSTS ist mit 15 von 166 Punkten ein wichtiger Faktor im Wolf-Agents Web Security Check.
Voraussetzung: Ein gültiges TLS-Zertifikat. Hetzner Cloud Server werden standardmäßig ohne HTTPS ausgeliefert — Sie müssen Let's Encrypt (certbot) manuell installieren. Erst wenn HTTPS funktioniert, können Sie HSTS aktivieren. Aktivieren Sie HSTS niemals, wenn noch HTTP-only-Subdomains existieren, die von includeSubDomains betroffen wären.
HTTPS via Let's Encrypt einrichten
HSTS setzt ein funktionierendes HTTPS voraus. Auf einem frischen Hetzner vServer installieren Sie certbot und generieren ein Zertifikat. Certbot konfiguriert den Webserver automatisch und richtet die automatische Erneuerung ein.
# Let's Encrypt Zertifikat installieren (Nginx)
sudo apt update && sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d ihre-domain.de -d www.ihre-domain.de
# Let's Encrypt Zertifikat installieren (Apache)
sudo apt update && sudo apt install certbot python3-certbot-apache -y
sudo certbot --apache -d ihre-domain.de -d www.ihre-domain.de
# Automatische Renewal prüfen
sudo certbot renew --dry-run Stellen Sie sicher, dass Port 443 (HTTPS) und Port 80 (HTTP, für ACME-Challenge) in der Hetzner Cloud Firewall geöffnet sind. Ohne Port 80 schlägt die Zertifikatserstellung fehl.
HSTS-Header konfigurieren
Erstellen Sie eine separate Konfigurationsdatei für den HSTS-Header. Der Wert max-age=31536000 entspricht einem Jahr — das Minimum für die HSTS-Preload-Liste. includeSubDomains gilt für alle Subdomains, preload ermöglicht die Aufnahme in die Browser-Preload-Liste.
# /etc/nginx/conf.d/hsts.conf
add_header Strict-Transport-Security
"max-age=31536000; includeSubDomains; preload"
always; # /etc/apache2/conf-available/hsts.conf
<IfModule mod_headers.c>
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
</IfModule> Starten Sie mit max-age=300 (5 Minuten) zum Testen. Erhöhen Sie dann auf max-age=604800 (1 Woche) und schließlich auf max-age=31536000 (1 Jahr). So können Sie bei Problemen schnell zurückrudern.
Verifizierung mit curl
Laden Sie die Konfiguration neu und prüfen Sie den HSTS-Header. Der Header muss in der HTTPS-Antwort vorhanden sein — bei HTTP-Anfragen wird er vom Browser ignoriert.
# Konfiguration testen und Webserver neu laden
sudo nginx -t && sudo systemctl reload nginx
# oder für Apache
sudo a2enconf hsts && sudo apachectl configtest && sudo systemctl reload apache2
# HSTS-Header prüfen
curl -sI https://ihre-domain.de | grep -i strict-transport-security
# Erwartete Ausgabe:
# strict-transport-security: max-age=31536000; includeSubDomains; preload preload verwenden. Häufige Fehler bei HSTS auf Hetzner
HSTS ohne funktionierendes HTTPS
HSTS ohne gültiges Zertifikat sperrt Besucher aus. Der Browser weigert sich, die Seite über HTTP zu laden, zeigt aber auch einen Zertifikatsfehler. Aktivieren Sie HSTS erst, wenn HTTPS einwandfrei funktioniert.
preload ohne includeSubDomains
Die HSTS-Preload-Liste verlangt zwingend includeSubDomains. Ohne diesen Parameter wird die Domain nicht akzeptiert. Prüfen Sie die Voraussetzungen unter hstspreload.org.
max-age unter 1 Jahr
Für die Preload-Liste ist max-age=31536000 (1 Jahr) das Minimum. Kürzere Werte wie 86400 (1 Tag) funktionieren zwar als HSTS, qualifizieren aber nicht für die Preload-Liste und geben weniger Punkte im Security Check.
Hetzner Load Balancer terminiert SSL
Wenn der Hetzner Load Balancer SSL terminiert, sieht das Backend nur HTTP. Der HSTS-Header wird trotzdem an den Client durchgereicht — aber stellen Sie sicher, dass der Header im Backend gesetzt wird, nicht am Load Balancer.
Compliance-Relevanz
HSTS ist eine Grundvoraussetzung für die Transportsicherheit und wird von allen relevanten Compliance-Frameworks verlangt. Auf selbstverwalteten Hetzner Servern liegt die Verantwortung für die korrekte HTTPS-Konfiguration beim Betreiber.
Wie steht Ihre Domain bei HSTS?
Prüfen Sie es jetzt — kostenlos, ohne Registrierung, mit 166 Prüfpunkte.