HSTS in Joomla konfigurieren
HTTP Strict Transport Security (HSTS) in Joomla aktivieren — über den dedizierten HSTS-Tab im Built-in HTTP Headers Plugin oder .htaccess-Fallback. Mit Verifizierung und Joomla-spezifischen Troubleshooting-Tipps.
HSTS in Joomla
HTTP Strict Transport Security (HSTS) weist Browser an, ausschließlich HTTPS-Verbindungen zu nutzen und verhindert so SSL-Stripping-Angriffe und Downgrade-Attacken. HSTS wird mit 15 von 166 Punkten im Wolf-Agents Web Security Check bewertet und ist eine der einfachsten Maßnahmen, um die Gesamtnote deutlich zu verbessern. Ohne HSTS kann ein Angreifer die verschlüsselte Verbindung per Man-in-the-Middle auf HTTP herabstufen.
Joomla 4+ bietet im Built-in HTTP Headers Plugin (System → Plugins → System - HTTP Headers) einen eigenen HSTS-Tab mit GUI-Feldern für Max-Age, includeSubDomains und Preload. Eine einzige Checkbox genügt, um HSTS zu aktivieren — keine Code-Änderungen nötig. Zusätzlich sollten Sie in den Joomla Global Configuration unter Server → Force HTTPS die Option "Gesamte Website" wählen, damit Joomla selbst alle Anfragen auf HTTPS umleitet.
Der Wolf-Agents Web Security Check prüft HSTS-Konfiguration, Max-Age-Wert und Preload-Status Ihrer Joomla-Installation. Über das Web Scan Monitoring werden Sie automatisch benachrichtigt, wenn HSTS nach einem Update deaktiviert wird oder der Max-Age-Wert unter den empfohlenen Schwellenwert fällt.
HSTS-Implementierung in Joomla
Das HTTP Headers Plugin bietet einen dedizierten HSTS-Tab mit drei Einstellungen: HSTS aktivieren (Hauptschalter), Max-Age (empfohlen: 31536000 = 1 Jahr), Include Subdomains und Preload. Aktivieren Sie alle drei Optionen für maximalen Schutz. Wichtig: Stellen Sie vor der Aktivierung sicher, dass Ihre Domain und alle Subdomains (mail.domain.de, staging.domain.de) gültiges HTTPS haben — mit includeSubDomains werden alle Subdomains einbezogen und ohne HTTPS sind diese nicht mehr erreichbar.
# HTTP Headers Plugin → Tab: Strict-Transport-Security (HSTS)
# (Built-in seit Joomla 4.0 — eigener Tab im Plugin)
HSTS: Aktiviert
Max-Age: 31536000
Include Subdomains: Ja
Preload: Ja
# Zusätzlich in Global Configuration → Server:
Force HTTPS: Gesamte Website
# → Speichern → System → Cache leeren# .htaccess — HSTS-Fallback (Apache)
<IfModule mod_headers.c>
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
</IfModule>
# HTTPS-Redirect (falls nicht über Global Config)
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>Die HSTS Preload List ist in alle großen Browser eingebaut. Einmal eingetragen, erzwingen Chrome, Firefox und Safari HTTPS für Ihre Domain — auch beim allerersten Besuch. Das Entfernen aus der Liste kann Monate dauern. Stellen Sie sicher, dass alle Subdomains HTTPS unterstützen, bevor Sie Preload aktivieren.
Verifizierung
Nach der Konfiguration im HTTP Headers Plugin leeren Sie den Joomla-Cache über
php cli/joomla.php cache:clean oder im Backend unter System → Cache leeren.
Prüfen Sie den Header per curl — testen Sie sowohl das Frontend
(Startseite, Beiträge, Formulare) als auch den Admin-Bereich unter
/administrator. HSTS-Header werden nur über HTTPS gesendet —
testen Sie niemals über eine HTTP-URL. Prüfen Sie auch, ob ein CDN den Header
eventuell entfernt. Nutzen Sie den Wolf-Agents
Web Security Check für eine vollständige Analyse aller Header-Kategorien.
# 1. Joomla-Cache leeren
php cli/joomla.php cache:clean
# 2. 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
# 3. HTTP-Redirect prüfen (sollte 301 sein)
curl -sI http://ihre-domain.de | head -5
# 4. Preload-Status prüfen
# → https://hstspreload.org/?domain=ihre-domain.deHäufige Fehler bei HSTS in Joomla
HTTP Headers Plugin ist deaktiviert — kein HSTS-Header
Ohne aktives Plugin wird kein HSTS-Header gesetzt. Navigieren Sie zu System → Plugins und aktivieren Sie das System - HTTP Headers Plugin. Der HSTS-Tab ist nur sichtbar, wenn das Plugin aktiv ist.
HSTS mit includeSubDomains aber Subdomains ohne HTTPS
Mit includeSubDomains müssen alle Subdomains gültiges HTTPS haben. Prüfen Sie mail.domain.de, staging.domain.de, api.domain.de etc. Subdomains ohne gültiges Zertifikat werden nach HSTS-Aktivierung für Browser unzugänglich.
Core-Update setzt HSTS-Tab auf Standard zurück
Bei Joomla-Major-Updates können Plugin-Einstellungen zurückgesetzt werden. Dokumentieren Sie Ihre HSTS-Konfiguration (Max-Age, Preload-Status). Nach jedem Update: HSTS-Tab prüfen und Header per curl verifizieren. Wolf-Agents Monitoring warnt automatisch.
Max-Age zu niedrig — Preload-Antrag wird abgelehnt
hstspreload.org erfordert einen Max-Age von mindestens 31536000 (1 Jahr). Viele Joomla-Installationen setzen niedrigere Werte. Prüfen Sie den Wert im HTTP Headers Plugin und setzen Sie ihn auf 31536000 für Preload-Kompatibilität.
Compliance-Relevanz
HTTP Strict Transport Security (HSTS) erfüllt konkrete Anforderungen aus mehreren Compliance-Frameworks, die für Unternehmen in der EU verbindlich sind. HSTS ist eine der am häufigsten geprüften Maßnahmen bei Security-Audits und Penetrationstests. Fehlende HSTS-Header werden in automatisierten Scans als Schwachstelle gewertet und können bei NIS2-Audits zu Beanstandungen führen.
Wie steht Ihre Domain bei HSTS?
Prüfen Sie es jetzt — kostenlos, ohne Registrierung, mit 166 Prüfpunkte.