IIS HSTS aktivieren Powershell

IIS HSTS aktivieren Powershell

Strict Transport Security

Die Aktivierung von HSTS unter einem IIS 10 ab der Version 1709 kann per Powershell wie folgt durchgeführt werden. Die Optionen “IncludeSubdomains” und “HTTP an HTTPS umleiten” werden ebenfalls mit aktiviert.

Mit HSTS verhindern wir Man-in-the-Middle-Attacken. Aus diesem Grund empfiehlt es sich den Sicherheitsmechanismus zu aktivieren.

Bei einem Man-in-the-Middle-Angriff platziert sich der Angreifer logisch oder physisch zwischen dem Opfer und den verwendeten Ressourcen. Er ist dadurch in der Lage, die Kommunikation abzufangen, mitzulesen oder zu manipulieren. Die Ende-zu-Ende-Verschlüsselung ist eine wirksame Gegenmaßnahme gegen eine Man-in-the-Middle-Attacke.

Die Parameter für die Umsetzung hat Microsoft wie folgt erklärt.

IIS HSTS aktivieren Powershell

IIS HSTS aktivieren Powershell

IIS HSTS aktivieren Powershell

Import-Module IISAdministration
Reset-IISServerManager -Confirm:$false

Start-IISCommitDelay

$sitesCollection = Get-IISConfigSection -SectionPath “system.applicationHost/sites” | Get-IISConfigCollection

$siteElement = Get-IISConfigCollectionElement -ConfigCollection $sitesCollection -ConfigAttribute @{“name”=”Default Web Site”}

$hstsElement = Get-IISConfigElement -ConfigElement $siteElement -ChildElementName “hsts”

Set-IISConfigAttributeValue -ConfigElement $hstsElement -AttributeName “enabled” -AttributeValue $true

Set-IISConfigAttributeValue -ConfigElement $hstsElement -AttributeName “max-age” -AttributeValue 15768000

Set-IISConfigAttributeValue -ConfigElement $hstsElement -AttributeName “preload” -AttributeValue $true

Set-IISConfigAttributeValue -ConfigElement $hstsElement -AttributeName “redirectHttpToHttps” -AttributeValue $true

Stop-IISCommitDelay

Remove-Module IISAdministration

Die Aktivierung per Kommandozeile sieht wie folgt aus

Das Ganze lässt sich auch mit dem Tool appcmd durchführen.

Strict Transport Security

IIS HSTS aktivieren CMD

cd “C:\Windows\System32\inetsrv”

appcmd.exe set config -section:system.applicationHost/sites “/[name=’Test HSTS’].hsts.enabled:True” /commit:apphost

appcmd.exe set config -section:system.applicationHost/sites “/[name=’Test HSTS’].hsts.max-age:15768000” /commit:apphost

appcmd.exe set config -section:system.applicationHost/sites “/[name=’Test HSTS’].hsts.includeSubDomains:True” /commit:apphost

appcmd.exe set config -section:system.applicationHost/sites “/[name=’Test HSTS’].hsts.preload:True” /commit:apphost

appcmd.exe set config -section:system.applicationHost/sites “/[name=’Test HSTS’].hsts.redirectHttpToHttps:True” /commit:apphost

Das Ergebnis sieht dann wie folgt aus.

Die Aktivierung von HSTS per Kommandozeile sieht wie folgt aus

Browser HSTS Support

Folgende Browser unterstützen den Sicherheitsmechanismus HSTS (HTTP Strict Transport Security).

Browser HSTS Support

HSTS vermeiden

Die Aktivierung von HSTS sollte auf privaten PKIs vermieden werden, da die Sperrlisten oder auch die OCSP-Antworten über den Port 80 (HTTP) laufen und die Browser möglicherweise diese nicht mehr abrufen oder erhalten können.