Binnen Exchange Server 2019 is het nu mogelijk om HTTP Strict Transport Security in te schakelen. Met deze instelling wordt er afgedwongen dat de webbrowser bij een bezoek altijd HTTPS moet gebruiken. Er wordt nu niet meer geprobeerd een standaard HTTP-verbinding te maken.
Het beschermt websites tegen protocol-downgrade-aanvallen en cookie-kaping, door webbrowsers te dwingen alleen via veilige HTTPS-verbindingen met een website te communiceren. Sommige ‘man in the middle‘ aanvallen kunnen hiermee voorkomen worden.
Bij Exchange Server 2016 is dit eveneens mogelijk, maar wijkt het instellen iets af, zie hier.
Om HSTS te activeren op een Exchange Server 2019 open je een powershell sessie als administrator.
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 $false Set-IISConfigAttributeValue -ConfigElement $hstsElement -AttributeName "max-age" -AttributeValue 0 Set-IISConfigAttributeValue -ConfigElement $hstsElement -AttributeName "includeSubDomains" -AttributeValue $false
Als je jouw domain toevoegt aan een zogenaamde HSTS Preload List, geef dan aan dat het proload attribuut meegestuurd dient te worden met de STS header. Enkel dan voer je het volgende uit:
Set-IISConfigAttributeValue -ConfigElement $hstsElement -AttributeName "preload" -AttributeValue $true
Als laatste stap voer je het onderstaande uit:
Stop-IISCommitDelay Remove-Module IISAdministration
Bovenstaande kan ook via IIS Manager… Selecteer de Default Web Site en kies rechts onder Configure voor HSTS.
LET OP! Activeer de Redirect Http to Https niet, dat kan problemen met EMS en OWA opleveren!
Om de werking te testen open je Edge en bezoek je eerst je owa url zodat edge de HSTS/PKP set een keer geraadpleegd heeft! Vervolgens ga je naar: edge://net-internals/#hsts en vul daar bij Query HSTS/PKP domain de hostname in en druk je op query.
Wanneer je “Found” onder dynamic_sts / dynamic_upgrade / dynamic_sts_domain etc zoiets als bovenstaand ziet, is HSTS correct geconfigureerd.
Voor Exchange Server 2016 wijkt het een beetje af.
Import-Module IISAdministration Reset-IISServerManager -Confirm:$false Start-IISCommitDelay $iisConfig = Get-IISConfigSection -SectionPath "system.webServer/httpProtocol" -CommitPath "Default Web Site" | Get-IISConfigCollection -CollectionName "customHeaders"
zonder preload:
New-IISConfigCollectionElement -ConfigCollection $iisConfig -ConfigAttribute @{"name"="Strict-Transport-Security"; "value"="max-age=300; includeSubDomains";}
met preload:
New-IISConfigCollectionElement -ConfigCollection $iisConfig -ConfigAttribute @{"name"="Strict-Transport-Security"; "value"="max-age=300; includeSubDomains; preload";}
afsluitend:
Stop-IISCommitDelay Remove-Module IISAdministration