Como inspecionar o certificado TLS do servidor SMTP remoto?

52

Temos um servidor Exchange 2007 em execução no Windows Server 2008. Nosso cliente usa o servidor de email de outro fornecedor. Suas políticas de segurança exigem que usemos o TLS imposto. Isso estava funcionando bem até recentemente.

Agora, quando o Exchange tenta entregar mensagens para o servidor do cliente, ele registra o seguinte:

A secure connection to domain-secured domain 'ourclient.com' on connector 'Default external mail' could not be established because the validation of the Transport Layer Security (TLS) certificate for ourclient.com failed with status 'UntrustedRoot. Contact the administrator of ourclient.com to resolve the problem, or remove the domain from the domain-secured list.

A remoção de ourclient.com do TLSSendDomainSecureList faz com que as mensagens sejam entregues com sucesso usando o TLS oportunista, mas isso é uma solução temporária na melhor das hipóteses.

O cliente é uma corporação internacional extremamente grande e sensível à segurança. Nosso contato de TI afirma não ter conhecimento de nenhuma alteração no certificado TLS. Pedi-lhe repetidamente para identificar a autoridade que gerou o certificado para que eu possa solucionar o erro de validação, mas até agora ele não conseguiu fornecer uma resposta. Por tudo que sei, nosso cliente poderia ter substituído seu certificado TLS válido por um de uma autoridade de certificação interna.

Alguém sabe uma maneira de inspecionar manualmente o certificado TLS de um servidor SMTP remoto, como se pode fazer para um certificado de servidor HTTPS remoto em um navegador da web? Pode ser muito útil determinar quem emitiu o certificado e comparar essas informações com a lista de certificados raiz confiáveis em nosso servidor Exchange.

    
por Skyhawk 12.04.2010 / 15:18

3 respostas

85

Você pode usar o OpenSSL. Se você tiver que verificar o certificado com STARTTLS , basta fazer

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

ou para uma porta smtp segura padrão:

openssl s_client -connect mail.example.com:465
    
por 12.04.2010 / 15:39
8

Eu sei que essa é uma pergunta antiga, mas ainda é uma questão relevante até hoje para administradores que desejam confirmar a validade do Certificado SSL em seus servidores de e-mail.

Você pode visitar o link e fazer o teste gratuitamente.

    
por 19.11.2016 / 09:02
2

Se você não tiver o OpenSSL, também poderá usar este snippet do 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))

onde [hostname] é o servidor.

Fonte: link

Isso puxa a biblioteca OpenSSL para você, o que torna a instalação um pouco mais fácil.

    
por 19.07.2016 / 14:59