HSTS für WordPress konfigurieren

Schritt-für-Schritt-Anleitung: HSTS in WordPress aktivieren — per functions.php oder Plugin, auf jedem Hosting.

WordPress · Schritt für Schritt

HSTS in WordPress

HTTP Strict Transport Security (HSTS) erzwingt verschlüsselte Verbindungen und schützt Ihre WordPress-Besucher vor SSL-Stripping. WordPress bietet zwei saubere Wege: einen PHP-Hook in der functions.php oder ein Security-Plugin. Beide Methoden setzen den Header bei jedem Request — ohne Eingriff in die Serverkonfiguration.

Voraussetzung ist eine funktionierende HTTPS-Konfiguration. Falls WordPress noch auf HTTP läuft, stellen Sie unter Einstellungen → Allgemein die WordPress-Adresse und Website-Adresse auf https:// um und installieren Sie ein SSL-Zertifikat (z.B. über Let's Encrypt). Der Wolf-Agents Web Security Check prüft HSTS automatisch — als Teil der 166 Prüfpunkte.

1 Schritt 1 von 3

HSTS-Header in WordPress setzen

Der WordPress-Hook send_headers ermöglicht es, HTTP-Header vor der Ausgabe zu setzen. Fügen Sie den folgenden Code in die functions.php Ihres Child-Themes ein — oder in ein eigenes Must-Use-Plugin unter wp-content/mu-plugins/.

functions.php (Child-Theme) Code-Lösung
// functions.php — HSTS für WordPress
function add_hsts_header() {
    if (is_ssl()) {
        header('Strict-Transport-Security: max-age=31536000; includeSubDomains; preload');
    }
}
add_action('send_headers', 'add_hsts_header');
Warum is_ssl()?

Die Prüfung stellt sicher, dass der HSTS-Header nur über HTTPS gesendet wird. Auf HTTP hat der Header keine Wirkung (Browser ignorieren ihn gemäß RFC 6797). Die Funktion erkennt auch Reverse-Proxy-Konfigurationen, wenn $_SERVER['HTTP_X_FORWARDED_PROTO'] korrekt gesetzt ist.

Alternative: Plugin-Lösung

Really Simple SSL (Pro)

Aktiviert HSTS automatisch in den erweiterten Einstellungen. Die Pro-Version bietet zusätzlich Preload-Konfiguration und Security Headers.

Headers Security Advanced

Kostenloses Plugin, das HSTS und weitere Security Headers über ein Dashboard konfigurierbar macht. Kein Code-Eingriff nötig.

2 Schritt 2 von 3

Konfiguration testen

Nach dem Speichern der functions.php ist der HSTS-Header sofort aktiv — kein Cache-Leeren oder Server-Neustart nötig. Verifizieren Sie den Header mit curl oder den Browser DevTools.

Terminal Verifizieren
# HSTS-Header prüfen
curl -sI https://example.com | grep -i strict

# Erwartete Ausgabe:
# Strict-Transport-Security: max-age=31536000; includeSubDomains; preload

Häufige Fehlerquellen bei WordPress

Mixed Content

Plugins oder Themes laden HTTP-Ressourcen. Prüfen Sie die Browser-Konsole (F12) auf „Mixed Content"-Warnungen und aktualisieren Sie die URLs auf HTTPS.

Caching-Plugin

Seiten-Caches (WP Super Cache, W3 Total Cache) können den Header unterdrücken. Leeren Sie den Cache nach der Änderung und prüfen Sie erneut.

CDN/Reverse Proxy

Cloudflare oder andere CDNs terminieren HTTPS vor WordPress. Prüfen Sie, ob is_ssl() korrekt true zurückgibt — ggf. HTTP_X_FORWARDED_PROTO in wp-config.php setzen.

Verwenden Sie immer ein Child-Theme für die functions.php-Änderung. Direkte Änderungen am Parent-Theme gehen beim nächsten Update verloren.
3 Schritt 3 von 3

HSTS Preload beantragen

Nach erfolgreicher Konfiguration können Sie Ihre Domain bei der HSTS Preload List registrieren. Bei WordPress Multisite mit Subdomains ist besondere Vorsicht geboten: Jede Subdomain muss ein gültiges SSL-Zertifikat haben.

1 Header enthält max-age ≥ 31536000, includeSubDomains und preload
2 Alle Subdomains haben HTTPS — bei Multisite: Wildcard-Zertifikat prüfen
3 Domain auf hstspreload.org einreichen
Preload ist quasi-permanent. Die Entfernung dauert Monate. Bei WordPress Multisite: Wildcard-Zertifikat verwenden, damit alle Subsites abgesichert sind.

Wie steht Ihre Domain bei HSTS?

Prüfen Sie es jetzt — kostenlos, ohne Registrierung, mit 166 Prüfpunkte.

Häufig gestellte Fragen

Kann ich HSTS in WordPress ohne Plugin setzen?

Ja — mit zwei Zeilen Code in der functions.php. Die Funktion add_hsts_header() nutzt den WordPress-Hook send_headers, um den HSTS-Header bei jedem Request zu setzen. Kein Plugin nötig, keine Performance-Einbußen.

Welches WordPress-Plugin eignet sich für HSTS?

Really Simple SSL (Pro-Version) und Headers Security Advanced & HSTS WP setzen HSTS automatisch. Für eine reine HSTS-Konfiguration ist die functions.php-Lösung einfacher und hat keine Plugin-Abhängigkeit.

Funktioniert HSTS auf WordPress mit Shared Hosting?

Ja. Die functions.php-Methode funktioniert auf jedem Hosting. Alternativ können Sie den HSTS-Header in der .htaccess setzen (siehe Apache-Anleitung). Manche Hoster bieten HSTS auch direkt im Control Panel an.

Muss ich WordPress auf HTTPS umstellen, bevor ich HSTS aktiviere?

Ja. HSTS setzt eine funktionierende HTTPS-Konfiguration voraus. Stellen Sie WordPress unter Einstellungen → Allgemein auf https:// um, installieren Sie ein SSL-Zertifikat und richten Sie den HTTP-zu-HTTPS-Redirect ein, bevor Sie HSTS aktivieren.

Kann HSTS WordPress-Plugins beeinträchtigen?

HSTS selbst beeinträchtigt keine Plugins. Allerdings können Plugins, die Mixed Content laden (HTTP-Ressourcen auf HTTPS-Seiten), nach HSTS-Aktivierung Probleme machen. Prüfen Sie die Browser-Konsole auf Mixed-Content-Warnungen.

Was passiert bei einem WordPress-Multisite mit includeSubDomains?

Bei WordPress Multisite mit Subdomain-Installation weitet includeSubDomains HSTS auf alle Subsites aus. Stellen Sie sicher, dass jede Subsite ein gültiges SSL-Zertifikat hat — idealerweise ein Wildcard-Zertifikat (*.example.com).