Devido à nossa configuração de rede, quando mudamos nossos negócios no ano passado, trocamos o Exchange 2010 para usar o AWS SES para retransmitir nossos e-mails de saída . Isso funcionou muito bem até ontem, quando o Exchange começou a falhar ao fazer a conexão TLS com o SES com esse erro nos logs de eventos sempre que tentava se conectar
Não é possível validar o certificado TLS do host inteligente para o conector Amazon SES. O erro de validação do certificado é UntrustedRoot. Se o problema persistir, entre em contato com o administrador do host inteligente para resolver o problema.
Coloquei o OpenSSL para Windows na caixa e executei o comando que encontrei neste tópico
openssl s_client -connect email-smtp.us-east-1.amazonaws.com:25 -starttls smtp
CONNECTED(000000EC)
depth=1 C = US, O = Symantec Corporation, OU = Symantec Trust Network, CN = Symantec Class 3 Secure Servidor CA - Erro de verificação G4
:num=20:não foi possível obter o certificado do emissor local
---
Cadeia de certificados
0 s:/C=US/ST=Washington/L=Seattle/O=Amazon.com, Inc./CN=email -smtp.us-east-1.amazonaws.com
i:/C=US/O=Symantec Corporation/OU=Symantec Trust Network/CN=Symantec Class 3 Secure Server CA - G4
1 s:/C=US/O= Symantec Corporation/OU=Symantec Trust Network/CN=Symantec Class 3
Secure Server CA - G4
i:/C=US/O=VeriSign, Inc./OU=VeriSign Trust Network/OU=(c) 2006 VeriSign, Inc.
- Somente para uso autorizado/CN=VeriSign Classe 3 Public Primary Certification Authority - G5
---
Certificado do servidor
[removido para brevidade]
subject=/C=US/ST=Washington/L=Seattle/O=Amazon.com, Inc. /CN=email-smtp.us-east-1.amazonaws.com
emissor=/C=US/O=Symantec Corporation/OU=Symantec Trust Network/CN=Symantec Class 3 Secure Server CA - G4
---
Sem certificado de cliente Nomes de CA enviados
---
SSL handshake leu 3005 bytes e gravou 708 bytes
---
Novo, TLSv1/SSLv3, cifra é AES256-SHA A
chave pública do servidor é de 2048 bits
Renegociação segura É suportada
Compressão: NONE
Expansão: NONE
Sem ALPN negociado
SSL-Session:
Protocol : TLSv1
Cipher : AES256-SHA
Session-ID: 5576FCDBA77EB88DC9C2678EA399604E0A4543E5CFC0FA1E89F7320A7A84993C
Session-ID-ctx:
Master-Key: CBD8DEA48F07E570896E02CBDC0E1DA08F0DA1D4CA901522B05A9C6F66A3E4F9 811AA12DE24BA0C14402F5585C32BF05
Key-Arg : None
PSK identity: None
PSK identity hint: None
SRP username: None
Start Time: 1433861339
Tempo limite: 300 (seg)
Verifique o código de retorno: 20 (não é possível obter o certificado do emissor local)
A única diferença entre isso no Linux vs Windows é a última linha
Verifique o código de retorno: 20 (não é possível obter o certificado do emissor local)
Suspeito que seja um problema da cadeia de CA, mas como faço para corrigir isso? O servidor que executa o Transporte de Hub é uma caixa do Windows Server 2008.
Finalmente encontrei uma resposta ( outros tiveram o mesmo problema ). Eu estava certo ao dizer que faltava alguma coisa na cadeia de CA. Aparentemente, esse algo é a autoridade de certificação primária pública de classe 3 da Verisign - G4 (que também é listada como Symantec, dependendo do seu navegador). Você pode ver este novo certificado em uso em https://www.amazonsha256.com/
Segui as etapas do TechNet para instalar um novo certificado raiz e há uma pequena observação aqui. Eles não mencionam isso em nenhum lugar, mas se você pegar a declaração CERTIFICATE e salvá-la como texto simples em um arquivo com uma
.cer
extensão, ela será importada para o Windows sem problemas.Após a importação, o SES funciona novamente. Não tenho ideia de por que estava faltando na loja de computadores da MS, mas não na loja do IE.