Freigeben über


Konfigurieren von HTTP Strict Transport Security (HSTS) in Exchange Server

GILT FÜR:yes-img-162016 yes-img-192019 yes-img-seSubscription Edition

Übersicht

HTTP Strict Transport Security (HSTS) ist ein weit verbreiteter Standard , mit dem Websitebesucher geschützt werden, indem sichergestellt wird, dass ihr Browser immer eine HTTPS-Verbindung verwendet. HSTS sendet einen speziellen HTTP-Antwortheader vom Server an den Browser ( Strict-Transport-Security STS). Dieser Header enthält eine max-age -Direktive, die die Dauer (in Sekunden) angibt, sodass der Browser daran denken sollte, dass nur über HTTPS auf die Website zugegriffen werden kann. Sobald ein Browser diesen Header empfängt, ändert er automatisch alle HTTP-Anforderungen, um auf die Website auf HTTPS-Anforderungen zuzugreifen.

HSTS bietet nicht nur Schutz vor gängigen Angriffsszenarien, es hilft auch, die allgemeine (und jetzt unsichere) Praxis der Umleitung von Benutzern von einer HTTP-URL zu einer HTTPS-URL zu beseitigen. HSTS kann auch zur Abwehr aktiver und passiver Netzwerkangriffe verwendet werden. HSTS behebt jedoch keine Sicherheitsrisiken für Schadsoftware, Phishing oder Browser.

Funktionsweise von HSTS

Der Browser wird angewiesen, HSTS zu erzwingen, wenn er den Strict-Transport-Security Header über eine HTTPS-Verbindung empfängt. Es gibt jedoch einige Anforderungen, die erfüllt sein müssen, bevor der Browser HSTS erzwingt. Insbesondere das Zertifikat, das zum Verschlüsseln der Sitzung verwendet wird:

  • Muss gültig und vom Client vertrauenswürdig sein;
  • Darf nicht abgelaufen sein; und
  • Muss die Domäne oder Unterdomäne enthalten, die im Browser aufgerufen wurde.

Allgemeine Empfehlungen finden Sie unter Sicheres Surfen im Web mit Microsoft Edge .

Sobald der Browser erkennt, dass eine Domäne HSTS aktiviert hat, gilt Folgendes:

  • Verwenden Sie immer eine https:// Verbindung, z. B. wenn Sie auf einen http:// Link klicken oder nachdem Sie eine URL in die Adressleiste eingegeben haben, ohne ein Protokoll anzugeben.
  • Entfernt die Möglichkeit für Benutzer, warnungen zu durchklicken (z. B. abgelaufene oder ungültige Zertifikate, Namenskonflikte usw.).

Es gibt einige Szenarien (z. B. benutzer hat einen neuen Computer, ein neues Profil, einen neuen Browser oder hat Browserdaten und -einstellungen gelöscht), in denen ein Benutzer für einen kurzen Zeitraum anfällig ist, da er die Website zum ersten Mal besucht, ohne dass HSTS erzwungen wird. Um diese Szenarien zu beheben, verwaltet das Chromium-Projekt ein HSTS Preload List (das auch von anderen Browsern wie Microsoft Edge und Mozilla Firefox verwendet wird). Erzwingt Preload List HSTS auch beim erstmaligen Besuch einer Website.

Sie können Ihre Domäne an die HSTS-Liste übermitteln. Der Webserver (oder in unserem Fall Ihr Exchange-Server) muss die preload Direktive auch als Teil des Strict-Transport-Security Headers senden, um zu signalisieren, dass das HSTS-Vorabladen vom Browser ausgeführt werden soll.

Behandeln von HTTP-Verbindungen durch Exchange Server

Standardmäßig leitet Exchange Server HTTP-Datenverkehr nicht an HTTPS um, da die Standardwebsite SSL erfordert. Weitere Informationen finden Sie unter Standardeinstellungen für virtuelle Exchange-Verzeichnisse .

Es ist jedoch möglich, eine automatische Umleitung von HTTP zu HTTPS zu konfigurieren, indem Sie die Schritte unter Konfigurieren der Umleitung von HTTP zu HTTPS für Outlook im Web in Exchange Server ausführen. Daher akzeptiert Exchange Server Verbindungen, die über HTTP hergestellt werden, und antwortet mit einem HTTP 302 redirect.

HSTS kann dazu beitragen, die Anzahl unsicherer HTTP-zu-HTTPS-Umleitungen erheblich zu reduzieren, da das Umschreiben zu HTTPS vom Browser selbst und nicht mehr vom Server als Teil einer HTTP 302 redirect Antwort ausgeführt wird. Die Verwendung von HSTS kann auch zu Leistungsverbesserungen führen, obwohl dies nicht der primäre Zweck ist.

Unabhängig von der Standardkonfiguration (die keine unverschlüsselten Verbindungen zulässt) empfiehlt es sich, den Strict-Transport-Security Header als Teil des Antwortheaders bereitzustellen.

Aktivieren von HSTS auf Exchange Server

Der STS-Header kann unter Exchange Server 2019 und Exchange Server 2016 konfiguriert werden, obwohl die Art und Weise, wie Sie jede Version konfigurieren, unterschiedlich ist.

Wichtig

HSTS darf nur auf der Default Web Site konfiguriert werden, da dies der Endpunkt ist, mit dem Clients eine Verbindung herstellen. HSTS darf nicht für Exchange Back Endkonfiguriert werden. Sie sollten auch erwägen, HSTS über den Antwortheader auf Geräten zu konfigurieren, die vor einem Exchange-Server über Schicht 7 betrieben werden (z. B. Lastenausgleichsmodule oder Reverseproxys).

Es empfiehlt sich, mit einer max-age Konfiguration von 300 (Sekunden) zu beginnen, d. h. fünf Minuten. Nachdem die Änderung vorgenommen wurde, sollten Sie die Clientkonnektivität mit dem Exchange-Server genau überwachen und bei Auftreten eines Problems ein Rollback für die Änderung ausführen.

Aktualisieren Sie auf einen max-age Wert von einer Woche (604800) oder einem Monat (2592000), und warten Sie die gesamte max-age Phase, bevor Sie fortfahren. Ein max-age Wert von einem Jahr (31536000) sollte aus Sicherheitssicht mindestens festgelegt werden und ist auch mindestens erforderlich, wenn Sie planen, Ihre Domäne dem HSTS Preload Listhinzuzufügen. Das Festlegen des Werts max-age auf einen Wert von zwei Jahren (63072000) wird empfohlen.

Hinweis

In den folgenden Beispielen wird der max-age Wert auf 300 Sekunden festgelegt. Dies ist eine Konfiguration, die nur zum Überprüfen der Funktionalität verwendet werden sollte. Stellen Sie sicher, dass Sie den Attributwert auf einen höheren Wert anpassen, wenn Sie bereit sind, die Konfiguration in die Produktion zu bringen.

Exchange Server 2019

Um Exchange Server 2019 für das Senden des Strict-Transport-Security Headers zu konfigurieren, können Sie die Windows PowerShell oder die IIS-Manager-Benutzeroberfläche verwenden. Im folgenden Abschnitt werden beide Methoden beschrieben. Die HSTS-Konfiguration ist eine serverspezifische Konfiguration und muss daher auf jedem Exchange-Server ausgeführt werden.

HSTS-Konfiguration über PowerShell

Führen Sie die folgenden Befehle in einem PowerShell-Fenster mit erhöhten Rechten aus, um HSTS zu konfigurieren und zu aktivieren:

Hinweis

Um einen höheren max-age Wert für Exchange Server 2019 zu konfigurieren, können Sie die Befehle erneut ausführen, indem Sie einen höheren Wert verwenden. Es ist nicht erforderlich, die vorhandene Konfiguration im Voraus zu entfernen.

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 300
Set-IISConfigAttributeValue -ConfigElement $hstsElement -AttributeName "includeSubDomains" -AttributeValue $true

Wenn Sie planen, Ihre Domäne zu HSTS Preload Listhinzuzufügen, müssen Sie sicherstellen, dass die preload Direktive auch als Teil des Strict-Transport-Security Headers gesendet wird. Sie dürfen die preload Direktive nicht senden, wenn Sie nicht planen, Ihre Domäne an das HSTS Preload Listzu übermitteln.

Set-IISConfigAttributeValue -ConfigElement $hstsElement -AttributeName "preload" -AttributeValue $true

Schließlich müssen die folgenden Befehle ausgeführt werden, um die HSTS-Konfiguration abzuschließen:

Stop-IISCommitDelay
Remove-Module IISAdministration

HSTS-Konfiguration über IIS-Manager

Führen Sie die folgenden Schritte im Internetinformationsdienste-Manager aus, um HSTS zu konfigurieren und zu aktivieren:

  1. Starten des IIS-Managers (InetMgr.exe)

  2. Navigieren Sie zu , Sites und klicken Sie auf Default Web Site

  3. Wählen Sie im Actions Menü HSTS...

  4. Aktivieren Sie das Enable Kontrollkästchen, definieren Sie den max-age Wert, und wählen Sie die Direktiven gemäß der Beschreibung in diesem Artikel aus.

    Wichtig

    Wir können HTTP nicht mithilfe der HSTS-Konfiguration zu HTTPS umleiten, da dies die Konnektivität für einige Szenarien unterbricht, einschließlich der Exchange-Verwaltungsshell (EMS). Wenn Sie die Umleitung von HTTP zu HTTPS aktivieren möchten, müssen Sie die Schritte unter Konfigurieren der Umleitung von http zu https für Outlook im Web in Exchange Server ausführen.

  5. Klicken Sie hier OK , um die Konfiguration abzuschließen und zu aktivieren.

Exchange Server 2016

Hinweis

Die HSTS-Konfiguration ist zwar über die Benutzeroberfläche auf Betriebssystemen möglich, die von Exchange Server 2019 unterstützt werden, aber dieses Steuerelement ist auf Betriebssystemen, die von Exchange Server 2016 unterstützt werden, nicht nativ verfügbar. Wir beschreiben daher nur die Schritte, die über PowerShell ausgeführt werden müssen.

Um Exchange Server 2016 für das Senden des Strict-Transport-Security Headers zu konfigurieren, führen Sie die folgenden Befehle in einem PowerShell-Fenster mit erhöhten Rechten aus. Die HSTS-Konfiguration ist eine serverspezifische Konfiguration und muss daher auf jedem Exchange-Server ausgeführt werden:

Hinweis

Um einen höheren max-age Wert für Exchange Server 2016 zu konfigurieren, müssen Sie zuerst den HTTP-Antwortheader entfernen, bevor Sie die folgenden Befehle erneut ausführen.

Windows Server 2012 & 2012 R2

Wenn Sie nicht planen, Ihre Domäne dem HSTS Preload Listhinzuzufügen, müssen Sie sicherstellen, dass die preload Direktive nicht als Teil des Strict-Transport-Security Headers gesendet wird. Führen Sie den folgenden Befehl aus, um HSTS zu konfigurieren , ohne die preload -Anweisung zu senden:

Import-Module WebAdministration
Add-WebConfigurationProperty -Filter "system.webServer/httpProtocol/customHeaders" -PSPath "IIS:\Sites\Default Web Site" -Name . -AtElement @{name="Strict-Transport-Security"} -Value @{name="Strict-Transport-Security";value="max-age=300; includeSubDomains"}

oder

Wenn Sie planen, Ihre Domäne zu HSTS Preload Listhinzuzufügen, müssen Sie sicherstellen, dass die preload Direktive als Teil des Strict-Transport-Security Headers gesendet wird. Führen Sie den folgenden Befehl aus, um Exchange Server zum Senden der preload Direktive als Teil der HSTS-Konfiguration zu konfigurieren:

Import-Module WebAdministration
Add-WebConfigurationProperty -Filter "system.webServer/httpProtocol/customHeaders" -PSPath "IIS:\Sites\Default Web Site" -Name . -AtElement @{name="Strict-Transport-Security"} -Value @{name="Strict-Transport-Security";value="max-age=300; includeSubDomains; preload"}

Windows Server 2016

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

$iisConfig = Get-IISConfigSection -SectionPath "system.webServer/httpProtocol" -CommitPath "Default Web Site" | Get-IISConfigCollection -CollectionName "customHeaders"

Wenn Sie nicht planen, Ihre Domäne dem HSTS Preload Listhinzuzufügen, müssen Sie sicherstellen, dass die preload Direktive nicht als Teil des Strict-Transport-Security Headers gesendet wird. Führen Sie den folgenden Befehl aus, um HSTS zu konfigurieren , ohne die preload -Anweisung zu senden:

New-IISConfigCollectionElement -ConfigCollection $iisConfig -ConfigAttribute @{"name"="Strict-Transport-Security"; "value"="max-age=300; includeSubDomains";}

oder

Wenn Sie planen, Ihre Domäne zu HSTS Preload Listhinzuzufügen, müssen Sie sicherstellen, dass die preload Direktive als Teil des Strict-Transport-Security Headers gesendet wird. Führen Sie den folgenden Befehl aus, um Exchange Server zum Senden der preload Direktive als Teil der HSTS-Konfiguration zu konfigurieren:

New-IISConfigCollectionElement -ConfigCollection $iisConfig -ConfigAttribute @{"name"="Strict-Transport-Security"; "value"="max-age=300; includeSubDomains; preload";}

Schließlich müssen die folgenden Befehle ausgeführt werden, um die HSTS-Konfiguration abzuschließen:

Stop-IISCommitDelay
Remove-Module IISAdministration

Deaktivieren von HSTS auf Exchange Server

Wenn Sie verhindern möchten, dass Exchange Server den Strict-Transport-Security Header sendet, können Sie die Konfiguration auf einer Serverbasis zurücksetzen. Die Schritte zum Deaktivieren von HSTS unterscheiden sich am Exchange Server 2016 und Exchange Server 2019.

Hinweis

Mit der HSTS-Spezifikation können Sie die max-age Direktive mit dem Wert 0senden. Diese Konfiguration kann verwendet werden, um die zwischengespeicherten HSTS-Richtlinieninformationen von Browsern zu überschreiben. Wenn Sie ihre Exchange Server HSTS-Konfiguration entfernen möchten, kann es hilfreich sein, zuerst den max-age Wert festzulegen, 0 bevor Sie die Strict-Transport-Security Headerkonfiguration entfernen.

Exchange Server 2019

Damit Exchange Server 2019 das Senden des Strict-Transport-Security Headers beendet, können Sie die Windows PowerShell oder die IIS-Manager-Benutzeroberfläche (UI) verwenden. Im folgenden Abschnitt werden beide Methoden beschrieben.

HSTS-Konfiguration über PowerShell

Führen Sie die folgenden Befehle in einem PowerShell-Fenster mit erhöhten Rechten aus, um HSTS zu deaktivieren:

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

Wenn die vorherige HSTS-Konfiguration das Senden der preload Direktive war, stellen Sie sicher, dass Sie auch dies deaktivieren:

Wichtig

Denken Sie daran, auch die Entfernung aus der HSTS-Vorabladeliste anzufordern . Wenn Sie vergessen, die Domäne aus der Vorabladeliste zu entfernen, versuchen Browser weiterhin, HSTS zu erzwingen.

Set-IISConfigAttributeValue -ConfigElement $hstsElement -AttributeName "preload" -AttributeValue $false

Schließlich müssen die folgenden Befehle ausgeführt werden, um die HSTS-Konfiguration abzuschließen:

Stop-IISCommitDelay
Remove-Module IISAdministration

HSTS-Konfiguration über IIS-Manager

Führen Sie im Internetinformationsdienste-Manager die folgenden Schritte aus, um HSTS zu deaktivieren:

  1. Starten des IIS-Managers (InetMgr.exe)

  2. Navigieren Sie zu , Sites und klicken Sie auf Default Web Site

  3. Wählen Sie im Actions Menü HSTS...

  4. Deaktivieren Sie alle Direktiven, legen Sie die max-age Direktive auf 0 fest, und deaktivieren Sie schließlich das Kontrollkästchen.Enable

  5. Klicken Sie hier OK , um die Konfiguration abzuschließen.

Exchange Server 2016

Hinweis

Die HSTS-Konfiguration ist zwar über die Benutzeroberfläche auf Betriebssystemen möglich, die von Exchange Server 2019 unterstützt werden, aber dieses Steuerelement ist auf Betriebssystemen, die von Exchange Server 2016 unterstützt werden, nicht nativ verfügbar. Wir beschreiben daher nur die Schritte, die über PowerShell ausgeführt werden müssen.

Damit Exchange Server 2016 das Senden des Strict-Transport-Security Headers beendet, führen Sie die folgenden Befehle in einem PowerShell-Fenster mit erhöhten Rechten auf jedem Ihrer Exchange-Server aus:

Windows Server 2012 & 2012 R2

Import-Module WebAdministration
Remove-WebConfigurationProperty -PSPath "IIS:\Sites\Default Web Site" -Filter "system.webServer/httpProtocol/customHeaders" -Name . -AtElement @{name="Strict-Transport-Security"}

Windows Server 2016

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

$iisConfig = Get-IISConfigSection -SectionPath "system.webServer/httpProtocol" -CommitPath "Default Web Site" | Get-IISConfigCollection -CollectionName "customHeaders"

Wenn die vorherige HSTS-Konfiguration die preload -Anweisung nicht gesendet hat, führen Sie den folgenden Befehl aus:

Remove-IISConfigCollectionElement -ConfigCollection $iisConfig -ConfigAttribute @{"name"="Strict-Transport-Security"; "value"="max-age=300; includeSubDomains";}

oder

Wenn die vorherige HSTS-Konfiguration die preload -Direktive senden sollte, stellen Sie sicher, dass Sie diesen Befehl ausführen:

Remove-IISConfigCollectionElement -ConfigCollection $iisConfig -ConfigAttribute @{"name"="Strict-Transport-Security"; "value"="max-age=300; includeSubDomains; preload";}

Schließlich müssen die folgenden Befehle ausgeführt werden, um die HSTS-Konfiguration abzuschließen:

Stop-IISCommitDelay
Remove-Module IISAdministration

Überprüfen, ob HSTS wie erwartet funktioniert

Die beste Möglichkeit, um zu bestätigen, dass der HSTS-Schutz wie erwartet funktioniert, ist die Verwendung eines modernen Browsers, der HSTS unterstützt (z. B. Microsoft Edge, Firefox, Chrome, Safari, Opera usw.). Die folgenden Schritte können ausgeführt werden, wenn Sie den Microsoft Edge-Browser verwenden. Wenn Sie einen anderen Browser verwenden, lesen Sie die Dokumentation, um herauszufinden, welche Schritte zum Überprüfen der HSTS-Flags erforderlich sind:

  1. Öffnen Sie den Browser, und stellen Sie eine HTTPS-Verbindung mit OWA oder ECP her. Stellen Sie sicher, dass das vom Exchange-Server zurückgegebene Zertifikat mit der (Unter-) Domäne übereinstimmt, die Sie verwendet haben (z. B. e2k16-2.contoso.lab) und vom Clientcomputer als vertrauenswürdig eingestuft wird (da dies erforderlich ist, um den HSTS-Schutz des Browsers für die Domäne zu aktivieren).
  2. Geben Sie edge://net-internals/#hsts in die Adressleiste ein, und drücken Sie die EINGABETASTE.
  3. Geben Sie den Domänennamen, den Sie für den Zugriff auf OWA oder ECP verwendet haben (z. B. e2k16-2.contoso.lab), in das Feld ein, und drücken Sie die Query HSTS/PKP domain EINGABETASTE.

Beispiel:

Wenn das Ergebnis lautet Not found, bedeutet dies, dass HSTS nicht für die Domäne verwendet wird. Der Grund kann sein, dass die URL zuvor nicht aufgerufen wurde oder dass der Eintrag mit dem HSTS-Richtlinienspeicher abgelaufen ist (er ist für den in der max-age -Anweisung angegebenen Zeitraum gültig).

Wenn ein Ergebnis gefunden wird, sieht die Ausgabe wie folgt aus:

Wenn HSTS verwendet wird und eine Verbindung nicht vertrauenswürdig ist (z. B. wenn die URL nicht mit der Domäne übereinstimmt, für die das Zertifikat ausgestellt wird oder das Zertifikat nicht vertrauenswürdig oder abgelaufen ist), wird dem Benutzer die folgende Warnung angezeigt, die nicht umgangen werden kann:

Blockierende Seite Microsoft Edge:

Blockierende Seite Mozilla Firefox: