Teilen über


bewährte Methoden für die Exchange Server der TLS-Konfiguration

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

In dieser Dokumentation werden die erforderlichen Schritte zum ordnungsgemäßen Konfigurieren bestimmter TLS-Versionen auf Microsoft Exchange Server beschrieben. Außerdem wird erläutert, wie die von TLS verwendeten Verschlüsselungssammlungen und Hashalgorithmen optimiert werden. Eine falsche TLS-Konfiguration kann zu verschiedenen Problemen bei der Interaktion mit Microsoft 365 oder anderen Systemen führen, die einen bestimmten TLS-Mindeststandard erfordern.

Weitere Informationen zu den TLS-Protokollen finden Sie in der Dokumentation zum Transport Layer Security-Protokoll .

Tipp

Sie können das Exchange HealthChecker-Skript verwenden, um die aktuelle TLS-Konfiguration Ihres Exchange-Servers zu überprüfen.

Lesen Sie sorgfältig, da einige Schritte nur unter bestimmten Betriebssystemen oder Exchange Server Versionen ausgeführt werden können. Jeder Abschnitt beginnt mit einer Matrix, die zeigt, ob eine Einstellung unterstützt wird, und ob sie von einer bestimmten Exchange Server Vorkonfiguriert wurde, gefolgt von Schritten zum Aktivieren oder Deaktivieren des jeweiligen TLS-Protokolls oder Features.

Zu berücksichtigende Punkte vor dem Deaktivieren einer TLS-Version

Stellen Sie sicher, dass jede Anwendung die TLS-Versionen unterstützt, die weiterhin aktiviert sind. Überlegungen wie (aber nicht beschränkt auf):

  • Unterstützen Ihre Domänencontroller und globalen Katalogserver beispielsweise nur eine TLS 1.2- oder TLS 1.3-Konfiguration?
  • Unterstützen Partneranwendungen beispielsweise eine reine TLS 1.2- oder TLS 1.3-Konfiguration?
  • Unterstützt das Betriebssystem die neueste TLS-Protokollversion TLS 1.2 über WinHTTP?
  • Unterstützen Ihre Lastenausgleichsmodule die Verwendung von TLS 1.2 oder TLS 1.3?
  • Unterstützen Ihre Desktop-, Mobil- und Browseranwendungen TLS 1.2 oder TLS 1.3?
  • Unterstützen Geräte wie Multifunktionsdrucker TLS 1.2 oder TLS 1.3?
  • Unterstützen Ihre drittanbieter- oder benutzerdefinierten internen Anwendungen, die in Exchange Server oder Microsoft 356 integriert sind, eine starke TLS-Implementierung?

Daher wird dringend empfohlen, dass alle Schritte, die Sie für den Übergang zu TLS 1.2 oder TLS 1.3 ausführen und sich von älteren Sicherheitsprotokollen entfernen, zuerst in Labs durchführen, die Ihre Produktionsumgebungen simulieren, bevor Sie sie langsam in der Produktion einführen.

Die Schritte zum Deaktivieren einer bestimmten TLS-Version, wie unten beschrieben, gelten für die folgenden Exchange Server Funktionen:

  • Simple Mail Transport Protocol (SMTP)
  • Outlook-Clientkonnektivität (Outlook Anywhere/MAPI/HTTP)
  • Exchange Active Sync (EAS)
  • Outlook im Web (OWA)
  • Exchange Admin Center (EAC) und Exchange Systemsteuerung (ECP)
  • AutoErmittlung
  • Exchange-Webdienste (Exchange Web Services, EWS)
  • REST (Exchange Server 2016/2019)
  • Verwenden von PowerShell durch Exchange über HTTPS
  • POP und IMAP

Voraussetzungen

Tls 1.3-Unterstützung wurde mit Exchange Server kumulativen Update 2019 (CU) 15 am Windows Server 2022 und Windows Server 2025 eingeführt, mit Ausnahme des SMTP-Protokolls. Unterstützung für dieses Protokoll wird mit einem zukünftigen Update hinzugefügt. Tls 1.2-Unterstützung wurde mit Exchange Server 2013 CU19 und Exchange Server 2016 CU8 eingeführt. Exchange Server 2019 unterstützt standardmäßig TLS 1.2.

Exchange Server können nicht ohne Windows Server ausgeführt werden. Daher ist es wichtig, dass die neuesten Betriebssystemupdates installiert sind, um eine stabile und sichere TLS-Implementierung auszuführen.

Es ist auch erforderlich, dass die neueste Version von .NET Framework und die zugehörigen Patches vorhanden sind, die von Ihrem CU unterstützt werden.

Stellen Sie basierend auf Ihrem Betriebssystem sicher, dass die folgenden Updates ebenfalls vorhanden sind (sie sollten installiert werden, wenn Ihr Server unter Windows Updates aktuell ist):

Wenn Ihr Betriebssystem Windows Server 2012 oder Windows Server 2012 R2 ist, müssen KB3161949 und KB2973337 installiert werden, bevor TLS 1.2 aktiviert werden kann.

Warnung

der erweiterte Support für Windows Server 2012 und Windows Server 2012 R2 wurde am 10. Oktober 2023 beendet. Diese Server erhalten keine Windows-Sicherheit Updates ohne ESU mehr. Es wird dringend empfohlen, so bald wie möglich zu einer unterstützten Version zu migrieren!

Stellen Sie sicher, dass Sie die Exchange Server neu starten, nachdem die TLS-Konfiguration angewendet wurde. Er wird aktiv, nachdem der Server neu gestartet wurde.

Vorbereiten .NET Framework zum Erben von Standardwerten von Schannel

Die folgende Tabelle zeigt die Exchange Server/Windows Server-Kombinationen mit der Standardkonfiguration der .NET Framework Schannel-Vererbung:

Exchange Server Windows Server Unterstützt Standardmäßig konfiguriert
Exchange Server 2019 CU14 oder höher Any Ja Ja (nur Neuinstallationen)
Exchange Server 2019 CU13 oder älter Any Ja Teilweise (SchUseStrongCrypto muss manuell konfiguriert werden)
Exchange Server 2016 Any Ja Nein (Betriebssystemstandardwerte werden verwendet)
Exchange Server 2013 Any Ja Nein (Betriebssystemstandardwerte werden verwendet)

Der SystemDefaultTlsVersions Registrierungswert definiert, welche Standardversionen des Sicherheitsprotokolls von .NET Framework 4.x verwendet werden. Wenn der Wert auf 1festgelegt ist, erbt .NET Framework 4.x seine Standardwerte von den Windows Secure Channel (Schannel)DisabledByDefault-Registrierungswerten. Wenn der Wert nicht definiert ist, verhält er sich so, als wäre der Wert auf 0festgelegt.

Die starke Kryptografie (konfiguriert durch den SchUseStrongCrypto Registrierungswert) verwendet sicherere Netzwerkprotokolle (TLS 1.3, TLS 1.2 und TLS 1.1) und blockiert Protokolle, die nicht sicher sind. SchUseStrongCrypto betrifft nur Clientverbindungen (ausgehende Verbindungen) in Ihrer Anwendung. Durch konfigurieren .NET Framework 4.x so, dass die Werte von Schannel geerbt werden, erhalten wir die Möglichkeit, die neuesten Versionen von TLS zu verwenden, die vom Betriebssystem unterstützt werden, einschließlich TLS 1.2 und TLS 1.3.

Aktivieren der .NET Framework 4.x Schannel-Vererbung

Führen Sie die folgenden Befehle in einem PowerShell-Fenster mit erhöhten Rechten aus, um die .NET Framework 4.x Schannel-Vererbung zu konfigurieren:

Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\.NETFramework\v4.0.30319" -Name "SystemDefaultTlsVersions" -Value 1 -Type DWord
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\.NETFramework\v4.0.30319" -Name "SchUseStrongCrypto" -Value 1 -Type DWord
Set-ItemProperty -Path "HKLM:\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319" -Name "SystemDefaultTlsVersions" -Value 1 -Type DWord
Set-ItemProperty -Path "HKLM:\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319" -Name "SchUseStrongCrypto" -Value 1 -Type DWord

Aktivieren der .NET Framework 3.5 Schannel-Vererbung

Exchange Server 2013 und höher ist diese Einstellung nicht erforderlich. Es wird jedoch empfohlen, sie mit den .NET 4.x-Einstellungen identisch zu konfigurieren, um eine konsistente Konfiguration sicherzustellen.

Führen Sie die folgenden Befehle in einem PowerShell-Fenster mit erhöhten Rechten aus, um die .NET Framework 3.5 Schannel-Vererbung zu konfigurieren:

Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\.NETFramework\v2.0.50727" -Name "SystemDefaultTlsVersions" -Value 1 -Type DWord
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\.NETFramework\v2.0.50727" -Name "SchUseStrongCrypto" -Value 1 -Type DWord
Set-ItemProperty -Path "HKLM:\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v2.0.50727" -Name "SystemDefaultTlsVersions" -Value 1 -Type DWord
Set-ItemProperty -Path "HKLM:\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v2.0.50727" -Name "SchUseStrongCrypto" -Value 1 -Type DWord

Schritte zum Konfigurieren von TLS 1.3

Die folgende Tabelle zeigt die Exchange Server/Windows Server Kombinationen, für die TLS 1.3 unterstützt wird. Die Tabelle enthält auch die Standardkonfiguration:

Exchange Server Windows Server Unterstützt Standardmäßig konfiguriert
Exchange Server 2019 CU15 Windows Server 2022/2025 Ja Ja (enabled)
Exchange Server 2019 CU15 Windows Server 2019 Nein Nicht zutreffend
Exchange Server 2019 CU14 oder älter Any Nein Nicht zutreffend
Exchange Server 2016 Any Nein Nicht zutreffend
Exchange Server 2013 Any Nein Nicht zutreffend

Aktivieren von TLS 1.3

Führen Sie den folgenden Befehl in einem PowerShell-Fenster mit erhöhten Rechten aus, um TLS 1.3 für Client- und Serververbindungen zu aktivieren:

New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols" -Name "TLS 1.3" -ErrorAction SilentlyContinue
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.3" -Name "Client" -ErrorAction SilentlyContinue
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.3" -Name "Server" -ErrorAction SilentlyContinue
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.3\Client" -Name "DisabledByDefault" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.3\Client" -Name "Enabled" -Value 1 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.3\Server" -Name "DisabledByDefault" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.3\Server" -Name "Enabled" -Value 1 -Type DWord

Gemäß RFC 8446 verwendet TLS 1.3 denselben Verschlüsselungssammlungsbereich wie frühere Versionen von TLS. TLS 1.3-Verschlüsselungssammlungen werden jedoch anders definiert, wobei nur die symmetrischen Verschlüsselungen angegeben werden, und sie können nicht für TLS 1.2 verwendet werden. Ebenso können Verschlüsselungssammlungen für TLS 1.2 und niedriger nicht mit TLS 1.3 verwendet werden.

Führen Sie den folgenden Befehl in einem PowerShell-Fenster mit erhöhten Rechten aus, um die TLS 1.3-Verschlüsselungssammlungen zu konfigurieren:

Enable-TlsCipherSuite -Name TLS_AES_256_GCM_SHA384 -Position 0
Enable-TlsCipherSuite -Name TLS_AES_128_GCM_SHA256 -Position 1

Deaktivieren von TLS 1.3

Führen Sie den folgenden Befehl in einem PowerShell-Fenster mit erhöhten Rechten aus, um TLS 1.3 für Client- und Serververbindungen explizit zu deaktivieren:

New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols" -Name "TLS 1.3" -ErrorAction SilentlyContinue
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.3" -Name "Client" -ErrorAction SilentlyContinue
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.3" -Name "Server" -ErrorAction SilentlyContinue
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.3\Client" -Name "DisabledByDefault" -Value 1 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.3\Client" -Name "Enabled" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.3\Server" -Name "DisabledByDefault" -Value 1 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.3\Server" -Name "Enabled" -Value 0 -Type DWord

Führen Sie den folgenden Befehl in einem PowerShell-Fenster mit erhöhten Rechten aus, um die TLS 1.3-Verschlüsselungssammlungen zu entfernen:

Disable-TlsCipherSuite -Name TLS_AES_256_GCM_SHA384
Disable-TlsCipherSuite -Name TLS_AES_128_GCM_SHA256

Schritte zum Konfigurieren von TLS 1.2

Die folgende Tabelle zeigt die Exchange Server/Windows Server Kombinationen, für die TLS 1.2 unterstützt wird. Die Tabelle enthält auch die Standardkonfiguration:

Exchange Server Windows Server Unterstützt Standardmäßig konfiguriert
Exchange Server 2019 Any Ja Ja (enabled)
Exchange Server 2016 Any Ja Nein
Exchange Server 2013 Any Ja Nein

Aktivieren von TLS 1.2

Führen Sie den folgenden Befehl in einem PowerShell-Fenster mit erhöhten Rechten aus, um TLS 1.2 für Client- und Serververbindungen zu aktivieren:

New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols" -Name "TLS 1.2" -ErrorAction SilentlyContinue
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2" -Name "Client" -ErrorAction SilentlyContinue
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2" -Name "Server" -ErrorAction SilentlyContinue
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client" -Name "DisabledByDefault" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client" -Name "Enabled" -Value 1 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server" -Name "DisabledByDefault" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server" -Name "Enabled" -Value 1 -Type DWord

Deaktivieren von TLS 1.2

Führen Sie den folgenden Befehl in einem PowerShell-Fenster mit erhöhten Rechten aus, um TLS 1.2 für Client- und Serververbindungen explizit zu deaktivieren:

New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols" -Name "TLS 1.2" -ErrorAction SilentlyContinue
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2" -Name "Client" -ErrorAction SilentlyContinue
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2" -Name "Server" -ErrorAction SilentlyContinue
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client" -Name "DisabledByDefault" -Value 1 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client" -Name "Enabled" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server" -Name "DisabledByDefault" -Value 1 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server" -Name "Enabled" -Value 0 -Type DWord

Schritte zum Konfigurieren von TLS 1.1

Die folgende Tabelle zeigt die Exchange Server/Windows Server Kombinationen, für die TLS 1.1 unterstützt wird. Die Tabelle enthält auch die Standardkonfiguration:

Exchange Server Windows Server Unterstützt Standardmäßig konfiguriert
Exchange Server 2019 Any Ja Ja (disabled)
Exchange Server 2016 Any Ja Nein
Exchange Server 2013 Any Ja Nein

Aktivieren von TLS 1.1

Hinweis

Die Microsoft TLS 1.1-Implementierung weist keine bekannten Sicherheitsrisiken auf. Aufgrund des Potenzials für zukünftige Protokoll downgrade-Angriffe und andere TLS-Sicherheitsrisiken wird jedoch empfohlen, TLS 1.1 sorgfältig zu planen und zu deaktivieren. Wenn Sie nicht sorgfältig planen, kann dies dazu führen, dass die Konnektivität für Clients verloren geht.

Führen Sie den folgenden Befehl in einem PowerShell-Fenster mit erhöhten Rechten aus, um TLS 1.1 für Client- und Serververbindungen zu aktivieren:

New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols" -Name "TLS 1.1" -ErrorAction SilentlyContinue
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1" -Name "Client" -ErrorAction SilentlyContinue
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1" -Name "Server" -ErrorAction SilentlyContinue
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client" -Name "DisabledByDefault" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client" -Name "Enabled" -Value 1 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server" -Name "DisabledByDefault" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server" -Name "Enabled" -Value 1 -Type DWord

Deaktivieren von TLS 1.1

Führen Sie den folgenden Befehl in einem PowerShell-Fenster mit erhöhten Rechten aus, um TLS 1.1 für Client- und Serververbindungen explizit zu deaktivieren:

New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols" -Name "TLS 1.1" -ErrorAction SilentlyContinue
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1" -Name "Client" -ErrorAction SilentlyContinue
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1" -Name "Server" -ErrorAction SilentlyContinue
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client" -Name "DisabledByDefault" -Value 1 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client" -Name "Enabled" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server" -Name "DisabledByDefault" -Value 1 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server" -Name "Enabled" -Value 0 -Type DWord

Schritte zum Konfigurieren von TLS 1.0

Die folgende Tabelle zeigt die Exchange Server/Windows Server Kombinationen, für die TLS 1.0 unterstützt wird. Die Tabelle enthält auch die Standardkonfiguration:

Exchange Server Windows Server Unterstützt Standardmäßig konfiguriert
Exchange Server 2019 Any Ja Ja (disabled)
Exchange Server 2016 Any Ja Nein
Exchange Server 2013 Any Ja Nein

Aktivieren von TLS 1.0

Hinweis

Die Implementierung von Microsoft TLS 1.0 hat keine bekannten Sicherheitsschwachstellen. Aufgrund des Potenzials für zukünftige Protokolldowngradeangriffe und andere TLS-Sicherheitsrisiken wird jedoch empfohlen, TLS 1.0 sorgfältig zu planen und zu deaktivieren. Wenn Sie nicht sorgfältig planen, kann dies dazu führen, dass die Konnektivität für Clients verloren geht.

Führen Sie den folgenden Befehl in einem PowerShell-Fenster mit erhöhten Rechten aus, um TLS 1.0 für Client- und Serververbindungen zu aktivieren:

New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols" -Name "TLS 1.0" -ErrorAction SilentlyContinue
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0" -Name "Client" -ErrorAction SilentlyContinue
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0" -Name "Server" -ErrorAction SilentlyContinue
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client" -Name "DisabledByDefault" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client" -Name "Enabled" -Value 1 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server" -Name "DisabledByDefault" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server" -Name "Enabled" -Value 1 -Type DWord

Deaktivieren von TLS 1.0

Führen Sie den folgenden Befehl in einem PowerShell-Fenster mit erhöhten Rechten aus, um TLS 1.0 für Client- und Serververbindungen explizit zu deaktivieren:

New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols" -Name "TLS 1.0" -ErrorAction SilentlyContinue
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0" -Name "Client" -ErrorAction SilentlyContinue
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0" -Name "Server" -ErrorAction SilentlyContinue
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client" -Name "DisabledByDefault" -Value 1 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client" -Name "Enabled" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server" -Name "DisabledByDefault" -Value 1 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server" -Name "Enabled" -Value 0 -Type DWord

Schritte zum Konfigurieren des strict-Modus für die TLS-Neuverhandlung

Der TLS Strict-Modus ist ein Sicherheitsfeature, das sicherstellt, dass nur Clients mit den erforderlichen Sicherheitsupdates TLS-Sitzungen mit dem Server einrichten und neu aushandeln können.

Die folgende Tabelle zeigt die Exchange Server/Windows Server-Kombinationen mit der Standardkonfiguration für tls-Neuverhandlung im strict-Modus:

Exchange Server Windows Server Unterstützt Standardmäßig konfiguriert
Exchange Server 2019 Any Ja Ja (enabled)
Exchange Server 2016 Any Ja Nein
Exchange Server 2013 Any Nein Nicht zutreffend

Aktivieren des strict-Modus für tls-Neuverhandlung

Führen Sie den folgenden Befehl in einem PowerShell-Fenster mit erhöhten Rechten aus, um den Strict-Modus der Neuverhandlung zu aktivieren:

Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL" -Name "AllowInsecureRenegoClients" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL" -Name "AllowInsecureRenegoServers" -Value 0 -Type DWord

Deaktivieren des strict-Modus für die TLS-Neuverhandlung

Führen Sie den folgenden Befehl in einem PowerShell-Fenster mit erhöhten Rechten aus, um den Strict-Modus der Neuverhandlung explizit zu deaktivieren:

Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL" -Name "AllowInsecureRenegoClients" -Value 1 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL" -Name "AllowInsecureRenegoServers" -Value 1 -Type DWord

Überprüfen der Verwendung von TLS 1.2 oder TLS 1.3

Nachdem TLS 1.2 oder TLS 1.3 aktiviert wurde, kann es hilfreich sein, zu überprüfen, ob Ihre Arbeit erfolgreich war und das System TLS 1.2 oder TLS 1.3 für eingehende (Server-)Verbindungen und ausgehende (Client)-Verbindungen aushandeln kann. Es stehen einige Methoden zur Überprüfung der TLS-Verwendung zur Verfügung. Einige davon werden in den folgenden Abschnitten erläutert.

Viele Protokolle, die in Exchange Server verwendet werden, sind HTTP-basiert und durchlaufen daher die IIS-Prozesse auf dem Exchange-Server. MAPI/HTTP, Outlook Anywhere, Exchange Web Services, Exchange ActiveSync, REST, OWA & EAC, Offlineadressbuchdownloads und AutoErmittlung sind Beispiele für HTTP-basierte Protokolle, die von Exchange Server verwendet werden.

IIS-Protokollierung

Das IIS-Team (Internetinformationsdienste) hat funktionen zu Windows Server 2012 R2 oder höher hinzugefügt, um benutzerdefinierte Felder im Zusammenhang mit Verschlüsselungsprotokollversionen und Verschlüsselungsverfahren zu protokollieren. Es wird empfohlen, den Blog zu lesen, um zu erfahren, wie Sie diese benutzerdefinierten Felder aktivieren und mit der Analyse von Protokollen beginnen, um Informationen zu eingehenden Verbindungen in Ihrer Umgebung im Zusammenhang mit HTTP-basierten Protokollen zu finden.

Diese benutzerdefinierten IIS-Felder sind für Windows Server Version vor Windows Server 2012 R2 nicht vorhanden. Ihre Load Balancer- oder Firewallprotokolle können diese Informationen möglicherweise bereitstellen. Bitten Sie Ihre Anbieter um Anleitungen, um festzustellen, ob deren Protokolle diese Informationen enthalten können.

Microsoft Edge-Entwicklertools

Sie können die Developer Toolsmit Microsoft Edge verfügbaren verwenden, um die TLS-Version zu überprüfen, die zum Herstellen einer sicheren Verbindung verwendet wurde, wenn Sie eine Verbindung mit Outlook im Web (OWA) oder dem Exchange Admin Center (ECP) herstellen. Gehen Sie dazu wie folgt vor:

  1. Öffnen Sie den Microsoft Edge-Browser, und stellen Sie eine HTTPS-Verbindung mit OWA oder ECP her.

  2. Drücken Sie CTRL + SHIFT + I , um die Developer Toolszu öffnen.

  3. Klicken Sie auf das + Symbol in der oberen rechten Ecke.

  4. Klicken Sie im Dropdownmenü auf Security .

  5. Überprüfen Sie die TLS-Version im Connection - secure connection settings Abschnitt.

Nachrichtenkopfzeilen

Nachrichtenheaderdaten in Exchange Server 2016 oder höher enthalten das ausgehandelte und verwendete Protokoll, wenn der sendende und empfangende Host eine E-Mail ausgetauscht hat. Sie können das Message Header Analyzer verwenden, um einen klaren Überblick über jeden Hop zu erhalten.

Es gibt eine bekannte Ausnahme für das Beispiel für Nachrichtenheader. Wenn ein Client eine Nachricht durch Herstellen einer Verbindung mit einem Server über authentifizierte SMTP (auch als SMTP-Clientübermittlungsprotokoll bezeichnet) sendet, zeigt die TLS-Version in den Nachrichtenheadern nicht die richtige TLS-Version an, die vom Client verwendet wird. Microsoft untersucht die Möglichkeit, diese Informationen in einem zukünftigen Update hinzuzufügen.

SMTP-Protokollierung

SMTP-Protokolle in Exchange Server das Verschlüsselungsprotokoll und andere verschlüsselungsbezogene Informationen enthalten, die beim Austausch von E-Mails zwischen zwei Systemen verwendet werden.

Wenn der Server der SMTP receiving systemist, suchen Sie im Protokoll nach der Server value verwendeten TLS-Version. Wenn der Server der SMTP sending systemist, suchen Sie im Protokoll nach der Client value verwendeten TLS-Version.

TLS-Version Serverwert Clientwert
TLS 1.0 SP_PROT_TLS1_0_SERVER SP_PROT-TLS1_0_CLIENT
TLS 1.1 SP_PROT_TLS1_1_SERVER SP_PROT-TLS1_1_CLIENT
TLS 1.2 SP_PROT_TLS1_2_SERVER SP_PROT TLS1_2_CLIENT

Hinweis

Unterstützung für SMTP TLS 1.3 wird in einem bevorstehenden Exchange 2019 CU15-Update enthalten sein.

Im folgenden Beispiel werden die Protokolldateien auf einem Exchange-Server, auf dem die Postfachrolle ausgeführt wird, nach Verbindungen gesucht, die mithilfe des TLS 1.0-Protokolls hergestellt wurden:

Select-String -Path (((Get-TransportService -Identity $env:COMPUTERNAME).ReceiveProtocolLogPath).PathName.Replace("Hub","FrontEnd")+"\*.log") "SP_PROT_TLS1_0"

Beispiel für die Suche nach Protokolldateien auf einem Exchange-Server, auf dem die Edge-Transport-Rolle ausgeführt wird, für Verbindungen, die mit dem TLS 1.1-Protokoll hergestellt wurden:

Select-String -Path (((Get-TransportService -Identity $env:COMPUTERNAME).ReceiveProtocolLogPath).PathName+"\*.log") "SP_PROT_TLS1_1"

POP und IMAP

Es ist keine Protokollierung vorhanden, die die Verschlüsselungsprotokollversion verfügbar macht, die für POP- und IMAP-Clients verwendet wird. Um diese Informationen zu erfassen, müssen Sie möglicherweise eine Netmon-Ablaufverfolgung von Ihrem Server erfassen oder den Datenverkehr untersuchen, der durch Ihren Lastenausgleich oder ihre Firewall fließt, in der HTTPS-Bridging stattfindet.

Bewährte Methoden für Verschlüsselungs- und Hashalgorithmen

Die Schritte in diesem Abschnitt können verwendet werden, um Exchange Server 2016 mit demselben Satz von Verschlüsselungs- und Hashalgorithmen wie Exchange Server 2019 zu konfigurieren. Diese Schritte sind für Exchange Server 2019 nicht erforderlich, da bereits ein vorkonfiguriertes Verschlüsselungs- und Hashalgorithmus eingerichtet ist.

Als Voraussetzung müssen Sie zuerst TLS 1.2 konfigurieren und dann TLS 1.0 und TLS 1.1 deaktivieren. Erwägen Sie, die folgenden Einstellungen getrennt von der Deaktivierung von TLS 1.0 und TLS 1.1 anzuwenden, um Konfigurationsprobleme mit problematischen Clients zu isolieren.

Windows Server 2012 und Windows Server 2012 R2

Führen Sie die folgenden Befehle in einem PowerShell-Fenster mit erhöhten Rechten aus, um die empfohlenen Verschlüsselungssammlungen zu konfigurieren:

New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Cryptography\Configuration\Local\SSL\00010002" -Name "Functions" -PropertyType MultiString -Value "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P384,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384_P384,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384_P256,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256_P384,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256_P256,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384_P384,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384_P256,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256_P384,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256_P256,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA_P384,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA_P256,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA_P384,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA_P256,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA_P384,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA_P256,TLS_RSA_WITH_AES_256_GCM_SHA384,TLS_RSA_WITH_AES_128_GCM_SHA256" -Force

Windows Server 2016

Führen Sie die folgenden Befehle in einem PowerShell-Fenster mit erhöhten Rechten aus, um die empfohlenen Verschlüsselungssammlungen zu konfigurieren.

Hinweis

Es ist möglich, die Verschlüsselungssammlungen mithilfe eines Gruppenrichtlinie Object (GPO) zu konfigurieren. Sie können sie nicht manuell mithilfe der Cmdlets Enable-TlsCipherSuite oder Disable-TLSCipherSuite konfigurieren, wenn sie bereits über GPO konfiguriert wurden oder wenn der Functions Registrierungseintrag bereits unter dem HKLM:\SOFTWARE\Policies\Microsoft\Cryptography\Configuration\SSL\00010002 Pfad vorhanden ist.

Deaktivieren Sie zunächst alle Verschlüsselungssammlungen:

foreach ($suite in (Get-TLSCipherSuite).Name) {
    if (-not([string]::IsNullOrWhiteSpace($suite))) {
        Disable-TlsCipherSuite -Name $suite -ErrorAction SilentlyContinue
    }
}

Aktivieren Sie als Nächstes nur die empfohlenen TLS 1.2-Verschlüsselungssammlungen erneut:

$cipherSuites = @('TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384',
                'TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256',
                'TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384',
                'TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256',
                'TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384',
                'TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256',
                'TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384',
                'TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256')

$suiteCount = 0
foreach ($suite in $cipherSuites) {
    Enable-TlsCipherSuite -Name $suite -Position $suiteCount
    $suiteCount++
}

Deaktivieren veralteter Verschlüsselungen und Hashes

Führen Sie den folgenden Befehl in einem PowerShell-Fenster mit erhöhten Rechten aus, um veraltete Verschlüsselungen und Hashes explizit zu deaktivieren:

New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL" -Name "Hashes" -ErrorAction SilentlyContinue
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL" -Name "Ciphers" -ErrorAction SilentlyContinue
(Get-Item HKLM:).OpenSubKey("SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers", $true).CreateSubKey("DES 56/56")
(Get-Item HKLM:).OpenSubKey("SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers", $true).CreateSubKey("NULL")
(Get-Item HKLM:).OpenSubKey("SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers", $true).CreateSubKey("RC2 40/128")
(Get-Item HKLM:).OpenSubKey("SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers", $true).CreateSubKey("RC2 56/128")
(Get-Item HKLM:).OpenSubKey("SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers", $true).CreateSubKey("RC2 56/56")
(Get-Item HKLM:).OpenSubKey("SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers", $true).CreateSubKey("RC4 40/128")
(Get-Item HKLM:).OpenSubKey("SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers", $true).CreateSubKey("RC4 56/128")
(Get-Item HKLM:).OpenSubKey("SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers", $true).CreateSubKey("RC4 64/128")
(Get-Item HKLM:).OpenSubKey("SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers", $true).CreateSubKey("RC4 128/128")
(Get-Item HKLM:).OpenSubKey("SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers", $true).CreateSubKey("Triple DES 168")
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Hashes" -Name "MD5" -ErrorAction SilentlyContinue
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\DES 56/56" -Name "Enabled" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\NULL" -Name "Enabled" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC2 40/128" -Name "Enabled" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC2 56/128" -Name "Enabled" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC2 56/56" -Name "Enabled" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC4 40/128" -Name "Enabled" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC4 56/128" -Name "Enabled" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC4 64/128" -Name "Enabled" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC4 128/128" -Name "Enabled" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\Triple DES 168" -Name "Enabled" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Hashes\MD5" -Name "Enabled" -Value 0 -Type DWord

Konfigurieren der Einstellung für elliptische Kurve

Es wird empfohlen, die curve25519 elliptische Kurve zu deaktivieren, da sie im FIPS-Modus nicht verfügbar ist. Weitere Informationen finden Sie in der Dokumentation zu TLS Elliptic Curves in Windows 10 Version 1607 und höher.

Führen Sie den folgenden Befehl in einem PowerShell-Fenster mit erhöhten Rechten aus, um die Einstellung für elliptische Kurve zu konfigurieren:

Disable-TlsEccCurve -Name "curve25519"
Enable-TlsEccCurve -Name "NistP384" -Position 0
Enable-TlsEccCurve -Name "NistP256" -Position 1