73 votos

¿Cómo inspeccionar el certificado TLS del servidor SMTP remoto?

Tenemos un servidor Exchange 2007 que se ejecuta en Windows Server 2008. Nuestro cliente utiliza un servidor de correo de otro proveedor. Sus políticas de seguridad nos exigen que utilicemos TLS forzado. Esto funcionaba bien hasta hace poco.

Ahora, cuando Exchange intenta entregar el correo al servidor del cliente, registra lo siguiente:

No se ha podido establecer una conexión segura con el dominio protegido "ourclient.com" en el conector "Correo externo predeterminado" porque la validación del certificado de seguridad de la capa de transporte (TLS) para ourclient.com ha fallado con el estado "UntrustedRoot". Ponte en contacto con el administrador de ourclient.com para resolver el problema o elimina el dominio de la lista de dominios seguros.

Eliminar ourclient.com de la TLSSendDomainSecureList hace que los mensajes se entreguen con éxito utilizando TLS oportunista, pero esto es una solución temporal en el mejor de los casos.

El cliente es una empresa internacional extremadamente grande y sensible a la seguridad. Nuestro contacto informático afirma no estar al tanto de ningún cambio en su certificado TLS. Le he pedido repetidamente que identifique la autoridad que generó el certificado para poder solucionar el error de validación, pero hasta ahora no ha podido dar una respuesta. Por lo que sé, nuestro cliente podría haber sustituido su certificado TLS válido por uno de una autoridad de certificación interna.

¿Alguien conoce una forma de inspeccionar manualmente el certificado TLS de un servidor SMTP remoto, como se puede hacer con el certificado de un servidor HTTPS remoto en un navegador web? Podría ser muy útil para determinar quién emitió el certificado y comparar esa información con la lista de certificados root de confianza de nuestro servidor Exchange.

127voto

Dan Andreatta Puntos 3318

Puedes usar OpenSSL. Si tiene que comprobar el certificado con STARTTLS Entonces, sólo hay que hacer

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

o para un puerto smtp seguro estándar:

openssl s_client -connect mail.example.com:465

10voto

Ketan Patel Puntos 41

Sé que esta es una pregunta antigua, pero sigue siendo una pregunta relevante incluso hoy en día para los administradores que desean confirmar la validez del certificado SSL en sus servidores de correo electrónico.

Puedes visitar https://www.checktls.com y realizar la prueba de forma gratuita.

4voto

browly Puntos 101

Si no tiene OpenSSL, también puede utilizar este fragmento de 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))

donde [hostname] es el servidor.

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

Esto saca la biblioteca OpenSSL por ti, lo que hace la instalación un poco más fácil.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: