Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Ursprüngliche KB-Nummer: 4495258
Symptome
Email Nachrichten, die an externe Domänen gesendet werden, werden in der lokalen Exchange Server (2016 oder 2013) in die Warteschlange gestellt. Wenn Sie die status überprüfen, erhalten Sie die folgende Fehlermeldung:
421 4.4.1 Verbindungstimeout." Es wurde versucht, ein Failover auf einen alternativen Host durchzuführen, aber dies war nicht erfolgreich. Entweder gibt es keine alternativen Hosts, oder die Übermittlung an alle alternativen Hosts ist fehlgeschlagen.
Darüber hinaus gibt der folgende Fehlereintrag in den Sendeconnectorprotokollen an, dass die TLS-Aushandlung (Transport Layer Security) fehlgeschlagen ist:
Fehler bei der TLS-Aushandlung mit dem Fehler NoCredentials
Ursache
Das Problem tritt auf, wenn die folgenden Bedingungen vorliegen:
- Dem Zertifikat, das für ausgehende TLS verwendet wird, fehlt ein privater Schlüssel.
- Sie füllen das
TLSCertificateName
Attribut mithilfe der Zeichenfolgen Issuer und SubjectName des Zertifikats auf. Darüber hinaus wird das<I>Issuer string<S>SubjectName string
-Attribut für ausgehende TLS-Daten innerhalb des Sendeconnectors verwendet, um E-Mail-Nachrichten an externe Domänen weiterzuleiten.
Lösung
Gehen Sie folgendermaßen vor, um dieses Problem zu beheben:
Aktivieren Sie die Protokollierung auf dem Sendeconnector, der für das Senden von E-Mail-Nachrichten autoritativ ist. Führen Sie hierzu das folgende PowerShell-Cmdlet als Administrator aus:
Set-SendConnector "NameOfTheSendCconnector" -ProtocolLoggingLevel Verbose
Überprüfen Sie die Sendeconnectorprotokolle, um das Zertifikat zu identifizieren, das bei ausgehendem TLS verwendet wird. Der Protokolleintrag kann beispielsweise wie folgt aussehen:
Date/Time.ConnectorId,Ausgehend zu Office 365,SessionId,16,192.168.0.78:28252,172.16.38.36:25,,,Senden des Zertifikats
Date/Time.ConnectorId,Outbound to Office 365,SessionId,17,192.168.0.78:28252,172.16.38.36:25,,CN=.xxx.xxx.xxx,Certificate subject
Date/Time.ConnectorId,Outbound to Office 365,SessionId,18,192.168.0.78:28252,172.16.38.36:25,,"CN=xxxxxx, OU=xxxxxx, O=xxxx, L=xxxx, S=xxxxx, C=xx",Zertifikatausstellername
Date/Time.ConnectorId,Outbound to Office 365,SessionId,19,192.168.0.78:28252,172.16.38.38.36:25,,xxxxxxxxx
Date/Time.ConnectorId,Outbound to Office 365,SessionId,20,192.168.0.78:28252,172.16.38.38.36:25,,xxxxxxxx
Date/Time.ConnectorId,Outbound to Office 365,SessionId,21,192.168.0.78:28252,172.16.38.38.36:25,,.xxxx.xxx.xx alternative Namen
Date/Time.ConnectorId,Outbound to Office 365,SessionId,22,192.168.0.78:28252,172.167.38.36:25,*,,TLS negotiation failed with error NoCredentialsÜberprüfen Sie die status der
PrivateKey
Eigenschaft für das Zertifikat, das in Schritt 2 identifiziert wurde. Führen Sie dazu das folgenden Cmdlet aus:Get-ChildItem -Path Cert:\LocalMachine\My | where {$_.Thumbprint -like 'Certificate thumbprint identified in step 2'} | Select-Object -Property thumbprint,hasprivatekey
Entfernen Sie das in Schritt 2 identifizierte Zertifikat, indem Sie das folgende Cmdlet ausführen:
Get-ChildItem -Path Cert:\LocalMachine\My | where {$_.Thumbprint -like 'Certificate thumbprint identified in step 2'} | remove-item
Hinweis
Bevor Sie das in Schritt 2 identifizierte Zertifikat entfernen, stellen Sie sicher, dass keine Abhängigkeit des Zertifikats von einer anderen Anwendung besteht, die auf dem Server ausgeführt wird, auf dem Microsoft Exchange Server ausgeführt wird. Wenn eine Abhängigkeit vorhanden ist, nehmen Sie die erforderlichen Änderungen in der Anwendung vor, damit die Anwendung mit dem in Schritt 5 erwähnten Zertifikat beginnt.
Importieren Sie ein gültiges Drittanbieterzertifikat über den üblichen Importvorgang, und überprüfen Sie dann die status des Zertifikats aus der Exchange-Verwaltungsshell, indem Sie das folgende Cmdlet ausführen.
Get-ExchangeCertificate | where {$_.rootca -eq 'third-party certificate'}
Hinweis
Die Exchange-Verwaltungsshell listet immer Zertifikate auf, die über einen gültigen privaten Schlüssel verfügen.
Aktivieren Sie den SMTP-Dienst für das neu importierte Drittanbieterzertifikat, indem Sie das folgende Cmdlet ausführen:
Enable-Exchangecertificate -thumbprint "Thumbprint of the new certificate" -services SMTP
Hinweis
Wenn Sie aufgefordert werden, das vorhandene Zertifikat mithilfe eines neuen Zertifikats zu ersetzen, geben Sie Nein ein.
Wenn das Drittanbieterzertifikat bereits importiert wurde, beginnt Exchange Server mit dem neuen Drittanbieterzertifikat.
Führen Sie das folgende Cmdlet aus, um einen Wiederholungsversuch für die Nachrichten in der Warteschlange auszuführen.
Get-queue -resultsize unlimited | where {$_.status -eq 'retry'} | retry-queue