IIS 7 IIS 7.5 IIS 8 IIS 8.5 IIS 10 HSTS Header

IIS 7 IIS 7.5 IIS 8 IIS 8.5 IIS 10 HSTS Header

IIS Enable HSTS Header URL ReWrite

Umleitung von HTTP auf HTTPS mithilfe des URL ReWrite Tools. Ältere IIS Version (IIS 7 IIS 7.5 IIS 8 IIS 8.5 IIS 10) also vor der Windows Version 1709 benötigen für die Umsetzung das URL-ReWrite Tool welches direkt  hier heruntergeladen werden kann.

IIS 7 IIS 7.5 IIS 8 IIS 8.5 IIS 10 HSTS Header

IIS 7 IIS 7.5 IIS 8 IIS 8.5 IIS 10 HSTS Header

Nach erfolgter Installation des Tools führen wir noch wenige Powershellbefehle aus, um die Regel zur Umleitung (301) zu erstellen.

IIS HSTS Regel per URL ReWrite Tool setzen

Default Web Site = der Name der Webseite die den HSTS Header bekommen soll

$Rule=”Umleitung zu einer sicheren HTTPS Verbindung”
$Website=”Default Web Site

Write-Verbose -Message “Erstelle die Url Rewrite Regel “”$Rule”” für die Website “”$Website”””

Remove-WebConfigurationProperty -pspath “MACHINE/WEBROOT/APPHOST” -location “$Website” -filter “system.webServer/rewrite/rules” -name “.” -AtElement @{name=”$Rule”} -ErrorAction SilentlyContinue

Add-WebConfigurationProperty -pspath ‘MACHINE/WEBROOT/APPHOST’ -location “$Website” -filter “system.webServer/rewrite/rules” -name “.” -value @{name=”$Rule”;stopProcessing=’True’}

Set-WebConfigurationProperty -pspath ‘MACHINE/WEBROOT/APPHOST’ -location “$Website” -filter “system.webServer/rewrite/rules/rule[@name=’$Rule’]/match” -name “url” -value “(.*)”

Add-WebConfigurationProperty -pspath ‘MACHINE/WEBROOT/APPHOST’ -location “$Website” -filter “system.webServer/rewrite/rules/rule[@name=’$Rule’]/conditions” -name “.” -value @{input='{HTTPS}’;pattern=’off’}

Set-WebConfigurationProperty -pspath ‘MACHINE/WEBROOT/APPHOST’ -location “$Website” -filter “system.webServer/rewrite/rules/rule[@name=’$Rule’]/action” -name “type” -value “Redirect”

Set-WebConfigurationProperty -pspath ‘MACHINE/WEBROOT/APPHOST’ -location “$Website” -filter “system.webServer/rewrite/rules/rule[@name=’$Rule’]/action” -name “url” -value “https://{HTTP_HOST}/{R:1}”

Download der Powershellbefehle als .zip Datei:

SHA256: B9B4987EC14224B41AF81FB3C7B3ED6AF815F8D126853CBC7F779278F58FA75D

Umleitung zu einer sicheren HTTPS Verbindung

Redirect HTTP to HTTPS

Sobald die Powershellbefehle ausgeführt worden sind, wurde auch die Umleitungsregel (301) erstellt und somit auch der HSTS Header hinzugefügt.

Der HSTS Header verhindert, dass Warnungen vor ungültigen Zertifikaten (z. B. abgelaufene, ungültige oder nicht vertrauenswürdige Zertifikate) umgangen werden können.

Zur Einsicht öffnen wir die web.config Datei und überzeugen uns von der korrekten Ausführung.

IIS Enable HSTS Header URL ReWrite

Im IIS der Version 10 (vor der Version 1709) öffnen wir dazu URL Rewrite Modul. Die Regel wurde erstellt und gleicht somit dem obigen XML-Abschnitt.

Redirect HTTP to HTTPS

Fiddler Web Debugger

Die Analyse des Streams zeigt ganz klar auf, das der HSTS Header (Regel) beim Aufruf des sicheren Hypertext-Übertragungsprotokolls berücksichtigt wurde.

IIS 7 IIS 7.5 IIS 8 IIS 8.5 IIS 10 HSTS Header

HSTS bei anderen Webservern aktivieren

Bei einen Apache Web Server wird folgender Code in die .htaccess Datei eingefügt:

# Use HTTP Strict Transport Security to force client to use secure connections only Header always set Strict-Transport-Security “max-age=300; includeSubDomains; preload” 

Bei einen lighttpd Web Server wird folgender Code in die lighttpd.conf  Datei eingefügt:

server.modules += ( “mod_setenv” ) $HTTP[“scheme”] == “https” { setenv.add-response-header = (“Strict-Transport-Security” => “max-age=300; includeSubDomains; preload”) } 

Bei einen NGINX Web Server wird folgender Code in die site.conf  Datei eingefügt:

add_header Strict-Transport-Security ‘max-age=300; includeSubDomains; preload; always;’