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.
Problembeschreibung
Stellen Sie sich folgendes Szenario vor:
Sie weisen einem oder mehreren Microsoft Exchange Server-Diensten ein erneuertes Zertifikat zu.
Sie versuchen, das alte Zertifikat im Exchange Admin Center (EAC) oder mithilfe des PowerShell-Cmdlets Remove-ExchangeCertificate zu entfernen.
In diesem Szenario wird die folgende Fehlermeldung angezeigt:
"Ein spezieller RPC-Fehler tritt auf dem Serverservernamen <>auf: Diese Zertifikate sind mit den folgenden Sendeconnectors gekennzeichnet: <Sendeconnectornamen>. Das Entfernen und Ersetzen von Zertifikaten aus dem Sendeconnector würde den E-Mail-Fluss unterbrechen. Wenn Sie trotzdem fortfahren möchten, ersetzen oder entfernen Sie diese Zertifikate aus Sendeconnector, und versuchen Sie es dann mit diesem Befehl."
Das Problem tritt auf, wenn das neue Zertifikat über den gleichen Ausstellernamen und Antragstellernamen verfügt, die vom alten Zertifikat verwendet werden.
Ursache
Um Unterbrechungen des Nachrichtenflusses zu vermeiden, verhindert Exchange Server, dass ein Zertifikat entfernt wird, wenn der Ausstellername und der Antragstellername in der TlsCertificateName-Eigenschaft eines beliebigen Send-Connectors angegeben sind. Das Format des TlsCertificateName
Eigenschaftswerts ist "<I>IssuerName<S>SubjectName". Wenn der TlsCertificateName
Wert sowohl dem alten als auch dem neuen Zertifikat entspricht, verhindert Exchange Server, dass diese beiden Zertifikate entfernt werden.
Lösung
Führen Sie die folgenden Schritte aus, um das alte Zertifikat zu entfernen. Wenn nicht anders angegeben, führen Sie die folgenden PowerShell-Befehle in der Exchange-Verwaltungsshell (EMS) aus.
Rufen Sie die Fingerabdrücke der neuen und alten Zertifikate ab. Rufen Sie hierzu eine Liste aller Exchange Server Zertifikate ab, indem Sie den folgenden Befehl ausführen. Identifizieren Sie dann die neuen und alten Zertifikate in der Liste.
Get-ExchangeCertificate | Format-List FriendlyName,Subject,Issuer,CertificateDomains,Thumbprint,NotBefore,NotAfter
Verwenden Sie für jeden Sendeconnector, der in der Fehlermeldung gemeldet wird, das Cmdlet Get-SendConnector , um eine aggregierte Liste der zugeordneten Quelltransportserver zu erstellen:
Get-SendConnector -Identity <connector name> | Format-List SourceTransportServers
Oder identifizieren Sie die Quelltransportserver im EAC wie folgt:
Navigieren Sie zu Nachrichtenfluss>Sendeconnectors.
Für jeden Sendeconnector, der in der Fehlermeldung gemeldet wird:
Doppelklicken Sie, um den Connector zu öffnen.
Navigieren Sie zu Bereichsquellenserver>, um die diesem Connector zugeordneten Server anzuzeigen.
Um Probleme mit dem Nachrichtenfluss während dieses Verfahrens zu minimieren, beenden Sie den Microsoft Exchange-Transportdienst, indem Sie den folgenden Befehl auf jedem Quelltransportserver ausführen, den Sie in Schritt 2 gefunden haben. Der Befehl muss nicht im EMS ausgeführt werden, erfordert jedoch eine PowerShell-Sitzung mit erhöhten Rechten.
Stop-Service MSExchangeTransport
Oder beenden Sie den Microsoft Exchange-Transportdienst mithilfe des Snap-Ins Services.msc auf jedem Quelltransportserver.
Hinweis
Nachdem Sie den Transportdienst beendet haben, wird der Nachrichtenfluss auf jedem Quelltransportserver beendet, bis Sie den Microsoft Exchange-Transportdienst im letzten Schritt dieses Verfahrens neu starten. Weitere Informationen zum Nachrichtenfluss in Exchange Server finden Sie unter Warteschlangen und Nachrichten in Warteschlangen.
Verwenden Sie für jeden Sendeconnector, der in der Fehlermeldung gemeldet wird, das Cmdlet Set-SendConnector , um dessen
TlsCertificateName
Eigenschaft zu löschen:Set-SendConnector -Identity <connector name> -TlsCertificateName $Null
Hinweis
Wenn Sie über eine große Umgebung verfügen, die verschiedene Standorte verwendet, müssen Sie möglicherweise erzwingen, dass die AD-Replikation den
TlsCertificateName
Eigenschaftswert auf den betroffenen Quelltransportservern vollständig entfernt.Entfernen Sie für jeden Quelltransportserver, den Sie in Schritt 2 gefunden haben, das alte Zertifikat, indem Sie den folgenden Befehl ausführen:
Remove-ExchangeCertificate -Server <server name> -Thumbprint <old certificate thumbprint>
Alternativ können Sie das alte Zertifikat wie folgt im EAC entfernen:
Navigieren Sie zuServerZertifikate>.
Für jeden Quelltransportserver, den Sie in Schritt 2 gefunden haben:
Wählen Sie den Server aus.
Wählen Sie das alte Zertifikat aus, und löschen Sie es dann.
Hinweis
Wenn Sie das alte Zertifikat nicht von allen anwendbaren Quelltransportservern entfernen, bevor Sie den
TlsCertificateName
Eigenschaftswert neu zuweisen, müssen Sie die Auflösungsprozedur wiederholen, um die verbleibenden Instanzen des alten Zertifikats zu entfernen.Generieren Sie den
TlsCertificateName
Eigenschaftswert, indem Sie die folgenden Befehle ausführen:$cert = Get-ExchangeCertificate -Thumbprint <new certificate thumbprint> $tlscertificatename = "<i>$($cert.Issuer)<s>$($cert.Subject)"
Führen Sie für jeden in der Fehlermeldung gemeldeten Sendeconnector den folgenden Befehl aus, um den Eigenschaftswert zuzuweisen, den
TlsCertificateName
Sie in Schritt 6 generiert haben:Set-SendConnector -Identity <connector name> -TlsCertificateName $tlscertificatename
Starten Sie den Microsoft Exchange-Transportdienst neu, indem Sie den folgenden Befehl auf jedem Quelltransportserver ausführen, den Sie in Schritt 2 gefunden haben. Der Befehl muss nicht im EMS ausgeführt werden, erfordert jedoch eine PowerShell-Sitzung mit erhöhten Rechten.
Start-Service MSExchangeTransport
Alternativ können Sie den Microsoft Exchange-Transportdienst im Snap-In Services.msc auf jedem Quelltransportserver starten.
Weitere Informationen
Führen Sie die folgenden Schritte aus, um zu bestimmen, welches Zertifikat ein Sende- oder Empfangsconnector verwendet:
Aktivieren Sie die Protokollprotokollierung für den Connector. Weitere Informationen zur Protokollprotokollierung finden Sie unter Protokollprotokollierung in Exchange Server.
Öffnen Sie die neueste Protokollprotokolldatei für den Connector. Sie können den entsprechenden Protokollordnerpfad ermitteln, indem Sie den folgenden Befehl in EMS ausführen:
Get-TransportService | Format-List Identity,*ProtocolLogPath
Suchen Sie in der Protokollprotokolldatei nach den Zertifikatinformationen für den Connector, indem Sie in der Spalte nach einem Eintrag suchen, der
context
mit "Zertifikat senden" beginnt. Die Zertifikatinformationen befinden sich in derdata
Spalte derselben Zeile. Das Format der Zertifikatinformationen lautet "<Subject><Issuer<>SerialNumber><Thumbprint><NotBefore><NotAfter><CertificateDomains>".Sie können das entsprechende Exchange Server Zertifikat finden, indem Sie den folgenden Befehl in EMS ausführen:
Get-ExchangeCertificate | Format-List Subject,Issuer,SerialNumber,Thumbprint,NotBefore,NotAfter,CertificateDomains
Weitere Informationen zur Zertifikatverwaltung finden Sie unter Zertifikatprozeduren in Exchange Server.