99 votes

Comment inspecter le certificat TLS d'un serveur SMTP distant ?

Nous avons un serveur Exchange 2007 fonctionnant sur Windows Server 2008. Notre client utilise le serveur de messagerie d'un autre fournisseur. Leurs politiques de sécurité nous obligent à utiliser le protocole TLS renforcé. Cela fonctionnait bien jusqu'à récemment.

Désormais, lorsqu'Exchange tente de distribuer le courrier au serveur du client, il enregistre le message suivant :

Une connexion sécurisée au domaine sécurisé 'ourclient.com' sur le connecteur 'Default external mail' n'a pas pu être établie car la validation du certificat TLS (Transport Layer Security) pour ourclient.com a échoué avec le statut 'UntrustedRoot'. Contactez l'administrateur de ourclient.com pour résoudre le problème, ou supprimez le domaine de la liste des domaines sécurisés.

La suppression de ourclient.com de la liste TLSSendDomainSecureList permet de délivrer les messages avec succès en utilisant TLS opportuniste, mais il s'agit au mieux d'une solution de contournement temporaire.

Le client est une entreprise internationale de très grande taille, sensible à la sécurité. Notre contact informatique affirme ne pas être au courant d'une quelconque modification de leur certificat TLS. Je lui ai demandé à plusieurs reprises d'identifier l'autorité qui a généré le certificat afin que je puisse résoudre l'erreur de validation, mais jusqu'à présent il n'a pas été en mesure de fournir une réponse. Pour autant que je sache, notre client pourrait avoir remplacé son certificat TLS valide par un certificat provenant d'une autorité de certification interne.

Quelqu'un connaît-il un moyen d'inspecter manuellement le certificat TLS d'un serveur SMTP distant, comme on peut le faire pour le certificat d'un serveur HTTPS distant dans un navigateur web ? Cela pourrait être très utile pour déterminer qui a émis le certificat et comparer cette information avec la liste des certificats racine de confiance sur notre serveur Exchange.

156voto

Dan Andreatta Points 5352

Vous pouvez utiliser OpenSSL. Si vous devez vérifier le certificat avec STARTTLS alors il suffit de faire

openssl s_client -connect mail.example.com:25 -starttls smtp

ou pour un port smtp standard sécurisé :

openssl s_client -connect mail.example.com:465

9voto

Ketan Patel Points 41

Je sais qu'il s'agit d'une vieille question, mais elle reste pertinente aujourd'hui encore pour les administrateurs qui souhaitent confirmer la validité du certificat SSL sur leurs serveurs de messagerie.

Vous pouvez visiter https://www.checktls.com et faire le test gratuitement.

6voto

browly Points 101

Si vous ne disposez pas d'OpenSSL, vous pouvez également utiliser cet extrait Python :

import smtplib
import ssl

connection = smtplib.SMTP() 
connection.connect('[hostname].')
connection.starttls()
print ssl.DER_cert_to_PEM_cert(connection.sock.getpeercert(binary_form=True))

où [hostname] est le serveur.

Source : https://support.google.com/a/answer/6180220

Cela tire la bibliothèque OpenSSL pour vous, ce qui rend l'installation un peu plus facile.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X