HSTS für IIS konfigurieren
Schritt-für-Schritt-Anleitung: HTTP Strict Transport Security in IIS einrichten, HTTP-zu-HTTPS-Redirect konfigurieren und Preload beantragen.
HSTS in IIS
HTTP Strict Transport Security (HSTS) weist Browser an, ausschließlich verschlüsselte HTTPS-Verbindungen zu verwenden. HSTS ist mit 15 von 166 Punkten ein wichtiger Faktor im Wolf-Agents Web Security Check. In IIS setzen Sie den Header per web.config customHeaders.
HSTS allein reicht nicht — Sie benötigen zusätzlich einen HTTP-zu-HTTPS-Redirect. IIS bietet dafür das URL Rewrite Module, das eingehende HTTP-Anfragen permanent auf HTTPS weiterleitet. Erst die Kombination aus HSTS-Header und Redirect schützt vollständig.
HSTS-Header per web.config setzen
Der einfachste Weg: Setzen Sie den HSTS-Header über customHeaders in der web.config. Alternativ nutzen Sie PowerShell für automatisierte Deployments oder Windows Server Core.
<!-- web.config — HSTS Header -->
<configuration>
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Strict-Transport-Security"
value="max-age=31536000; includeSubDomains; preload" />
</customHeaders>
</httpProtocol>
</system.webServer>
</configuration> # PowerShell — HSTS Header setzen
$sitePath = 'MACHINE/WEBROOT/APPHOST/Default Web Site'
$filter = "system.webServer/httpProtocol/customHeaders"
Add-WebConfigurationProperty -pspath $sitePath \
-filter $filter -name "." \
-value @{
name = 'Strict-Transport-Security'
value = 'max-age=31536000; includeSubDomains; preload'
} Ab IIS 10 Version 1709 gibt es ein natives HSTS-Feature. Sie können es per IIS Manager unter Sites > [Site] > HSTS aktivieren. Die web.config-Methode funktioniert jedoch auf allen IIS-Versionen und ist portabler.
HTTP-zu-HTTPS-Redirect einrichten
HSTS schützt nur nach dem ersten HTTPS-Besuch. Damit Benutzer, die http:// eingeben, sofort weitergeleitet werden, benötigen Sie eine URL Rewrite Rule. Diese erfordert das IIS URL Rewrite Module.
<!-- web.config — HTTP zu HTTPS Redirect -->
<!-- Benötigt IIS URL Rewrite Module -->
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="HTTPS Redirect" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="off" ignoreCase="true" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{R:1}"
redirectType="Permanent" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration> <rewrite>-Regeln in der web.config komplett ignoriert, ohne Fehlermeldung. Verifizieren und Preload beantragen
IIS lädt web.config-Änderungen automatisch. Prüfen Sie den HSTS-Header und beantragen Sie anschließend den Preload-Status.
# HSTS-Header prüfen
curl -sI https://ihre-domain.de | Select-String "Strict-Transport"
# Erwartete Ausgabe:
# Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
# Preload beantragen: https://hstspreload.org Häufige Fehler
HSTS über HTTP gesendet
web.config customHeaders senden den HSTS-Header auch über HTTP-Verbindungen. Browser ignorieren HSTS über HTTP laut RFC — aber es zeigt eine fehlerhafte Konfiguration an.
URL Rewrite Module fehlt
Ohne das URL Rewrite Module funktioniert der HTTP-zu-HTTPS-Redirect nicht. IIS gibt keinen Fehler aus — die Regel wird einfach ignoriert.
Doppelter HSTS-Header
Wenn HSTS sowohl in der web.config als auch per ASP.NET Core Middleware gesetzt wird, erscheint der Header doppelt. Entscheiden Sie sich für eine Methode.
Compliance-Relevanz
HSTS ist eine Grundvoraussetzung für sichere Websites. PCI DSS fordert die ausschließliche Nutzung starker Kryptografie — HSTS stellt sicher, dass keine unverschlüsselten Verbindungen möglich sind. Der Wolf-Agents Web Security Check prüft HSTS inklusive Preload-Status und max-age-Wert.
Wie steht Ihre Domain bei HSTS?
Prüfen Sie es jetzt — kostenlos, ohne Registrierung, mit 166 Prüfpunkte.