Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Symptômes
Considérez le scénario suivant :
Vous affectez un certificat renouvelé à un ou plusieurs services Microsoft Exchange Server.
Vous essayez de supprimer l’ancien certificat dans le Centre d’administration Exchange (EAC) ou à l’aide de l’applet de commande PowerShell Remove-ExchangeCertificate .
Dans ce scénario, vous recevez le message d'erreur suivant :
« Une erreur Rpc spéciale se produit sur le serveur <: ces certificats sont associés aux connecteurs d'envoi suivants : <Noms de connecteurs d’envoi>.> » La suppression et le remplacement des certificats de Send Connector interrompent le flux de messagerie. Si vous souhaitez toujours continuer, remplacez ou supprimez ces certificats de Send Connector, puis essayez cette commande. »
Le problème se produit si le nouveau certificat a le même nom d’émetteur et le même nom d’objet que celui utilisé par l’ancien certificat.
La cause
Pour éviter les interruptions de flux de messagerie, Exchange Server empêche la suppression d’un certificat si le nom de l’émetteur et le nom de l’objet sont spécifiés dans la propriété TlsCertificateName d’un connecteur d’envoi. Le format de la valeur de propriété TlsCertificateName est «<I>IssuerName<S>SubjectName». Si la TlsCertificateName valeur correspond à l’ancien et au nouveau certificat, Exchange Server empêche ces deux certificats d’être supprimés.
Résolution
Pour supprimer l’ancien certificat, procédez comme suit. Sauf indication contraire, exécutez les commandes PowerShell suivantes dans Exchange Management Shell (EMS).
Obtenez les empreintes des nouveaux certificats et anciens. Pour ce faire, obtenez la liste de tous les certificats Exchange Server en exécutant la commande suivante. Ensuite, identifiez les nouveaux certificats et les anciens certificats de la liste.
Get-ExchangeCertificate | Format-List FriendlyName,Subject,Issuer,CertificateDomains,Thumbprint,NotBefore,NotAfterPour chaque connecteur d’envoi signalé dans le message d’erreur, utilisez l’applet de commande Get-SendConnector pour générer une liste agrégée de serveurs de transport sources associés :
Get-SendConnector -Identity <connector name> | Format-List SourceTransportServersVous pouvez également identifier les serveurs de transport sources dans le Centre d’administration Exchange comme suit :
Accédez au flux de courrier>connecteurs d’envoi.
Pour chaque connecteur d’envoi signalé dans le message d’erreur :
Double-cliquez pour ouvrir le connecteur.
Accédez à étendue>serveur source pour voir les serveurs associés à ce connecteur.
Pour réduire les problèmes de flux de messagerie pendant cette procédure, arrêtez le service de transport Microsoft Exchange en exécutant la commande suivante sur chaque serveur de transport source que vous avez trouvé à l’étape 2. La commande n’a pas besoin d’être exécutée dans emS, mais elle nécessite une session PowerShell avec élévation de privilèges.
Stop-Service MSExchangeTransportOu arrêtez le service de transport Microsoft Exchange à l’aide du composant logiciel enfichable Services.msc sur chaque serveur de transport source.
Remarque
Après avoir arrêté le service de transport, le flux de messagerie sur chaque serveur de transport source est arrêté jusqu’à ce que vous redémarrez le service de transport Microsoft Exchange à l’étape finale de cette procédure. Pour plus d’informations sur le flux de messagerie dans Exchange Server, consultez Files d’attente et messages dans les files d’attente.
Pour chaque connecteur d’envoi signalé dans le message d’erreur, utilisez l’applet de commande Set-SendConnector pour effacer sa
TlsCertificateNamepropriété :Set-SendConnector -Identity <connector name> -TlsCertificateName $NullRemarque
Si vous avez un environnement volumineux qui utilise différents sites, vous devrez peut-être forcer la réplication AD pour effacer complètement la
TlsCertificateNamevaleur de propriété sur les serveurs de transport source affectés.Pour chaque serveur de transport source que vous avez trouvé à l’étape 2, supprimez l’ancien certificat en exécutant la commande suivante :
Remove-ExchangeCertificate -Server <server name> -Thumbprint <old certificate thumbprint>Vous pouvez également supprimer l’ancien certificat dans le Centre d’administration Exchange comme suit :
Accédez à Serveurs>Certificats.
Pour chaque serveur de transport source que vous avez trouvé à l’étape 2 :
Sélectionnez le serveur.
Sélectionnez l’ancien certificat, puis supprimez-le.
Remarque
Si vous ne supprimez pas l’ancien certificat de tous les serveurs de transport source applicables avant de réaffecter la valeur de la
TlsCertificateNamepropriété, vous devrez répéter la procédure de résolution pour supprimer les instances restantes de l’ancien certificat.Générez la valeur de la
TlsCertificateNamepropriété en exécutant les commandes suivantes :$cert = Get-ExchangeCertificate -Thumbprint <new certificate thumbprint> $tlscertificatename = "<i>$($cert.Issuer)<s>$($cert.Subject)"Pour chaque connecteur d’envoi signalé dans le message d’erreur, exécutez la commande suivante pour affecter la
TlsCertificateNamevaleur de propriété que vous avez générée à l’étape 6 :Set-SendConnector -Identity <connector name> -TlsCertificateName $tlscertificatenameRedémarrez le service de transport Microsoft Exchange en exécutant la commande suivante sur chaque serveur de transport source que vous avez trouvé à l’étape 2. La commande n’a pas besoin d’être exécutée dans emS, mais elle nécessite une session PowerShell avec élévation de privilèges.
Start-Service MSExchangeTransportVous pouvez également démarrer le service Microsoft Exchange Transport dans l'outil Services.msc sur chaque serveur de transport source.
Plus d’informations
Pour déterminer le certificat utilisé par un connecteur d’envoi ou de réception, procédez comme suit :
Activez la journalisation du protocole pour le connecteur. Pour plus d’informations sur la journalisation des protocoles, consultez Journalisation du protocole dans Exchange Server.
Ouvrez le fichier journal du protocole le plus récent pour le connecteur. Vous pouvez déterminer le chemin du dossier du journal applicable en exécutant la commande suivante dans EMS :
Get-TransportService | Format-List Identity,*ProtocolLogPathDans le fichier journal du protocole, recherchez les informations de certificat du connecteur en recherchant une entrée qui commence par « Envoi de certificat » dans la
contextcolonne. Les informations de certificat se situent dans ladatacolonne de la même ligne. Le format des informations de certificat est «<>< Subject Issuer><SerialNumber><Thumbprint><NotBefore><NotAfter><CertificateDomains> ».Vous trouverez le certificat Exchange Server correspondant en exécutant la commande suivante dans EMS :
Get-ExchangeCertificate | Format-List Subject,Issuer,SerialNumber,Thumbprint,NotBefore,NotAfter,CertificateDomains
Pour plus d’informations sur la gestion des certificats, consultez procédures de certificat dans Exchange Server.