Desde que nosso provedor de e-mail alterou seu certificado SSL, um cliente POP3 baseado em mono se recusa a se conectar ao servidor POP seguro para baixar e-mails. Outros clientes não têm um problema; por exemplo, Thunderbird e Outlook; nem a maioria dos sites verificadores SSL capazes de verificar portas ímpares, exceto esta . Eu tenho trabalhado com os dois provedores na tentativa de identificar o problema, mas finalmente cheguei a um beco sem saída com os dois, pois não conheço o suficiente sobre os Certificados SSL para poder orientar os provedores a entender onde está a falha.
Durante a investigação, chamei a atenção para a diferença na saída dos dois comandos a seguir (removi os certificados da saída para facilitar a leitura):
echo "" | openssl s_client -showcerts -connect pop.gmail.com:995
CONECTADO (00000003) depth = 2 / C = EUA / O = GeoTrust Inc./CN=GeoTrust Global CA verificar erro: num = 20: não é possível obter o certificado do emissor local verificar retorno: 0 --- Cadeia de certificados 0 s: / C = EUA / ST = Califórnia / L = Mountain View / O = Google Inc / CN = pop.gmail.com i: / C = EUA / O = Google Inc / CN = Google Internet Authority G2 ----- COMEÇAR CERTIFICADO ----- ----- TERMINAR CERTIFICADO ----- 1 s: / C = EUA / O = Google Inc / CN = Google Internet Authority G2 i: / C = EUA / O = GeoTrust Inc./CN=GeoTrust Global CA ----- COMEÇAR CERTIFICADO ----- ----- TERMINAR CERTIFICADO ----- 2 s: / C = EUA / O = GeoTrust Inc./CN=GeoTrust Global CA i: / C = US / O = Equifax / OU = Autoridade de certificação segura Equifax ----- COMEÇAR CERTIFICADO ----- ----- TERMINAR CERTIFICADO ----- --- Certificado do servidor subject = / C = US / ST = Califórnia / L = Mountain View / O = Google Inc / CN = pop.gmail.com emissor = / C = EUA / O = Google Inc / CN = Google Internet Authority G2 --- Nenhum nome de CA de certificado de cliente enviado --- O handshake SSL leu 3236 bytes e gravou 435 bytes --- Novo, TLSv1 / SSLv3, a cifra é RC4-SHA A chave pública do servidor é 2048 bits A renegociação segura é suportada Compressão: NENHUM Expansão: NENHUM Sessão SSL: Protocolo: TLSv1 Cifra: RC4-SHA ID da sessão: 745F84194498529B91B7D9194363CBBD23425446CF2BFF3BF5557E3C6606CA06 ID da sessão-ctx: Chave mestra: DED1AE0A44609F9D6F54626F4370ED96436A561A59F64D66240A277066322DCD2CCB9A6D198C95F4D2B0C7E6781EECD2 Argumento-chave: nenhum Hora de início: 1397678434 Tempo limite: 300 (s) Verifique o código de retorno: 20 (não é possível obter o certificado do emissor local) --- + OK Gpop pronto para pedidos a partir de 69.3.61.10 c13mb42148040pdj FEITO
echo "" | openssl s_client -showcerts -connect secure.emailsrvr.com:995
CONECTADO (00000003) depth = 2 / C = EUA / O = GeoTrust Inc./CN=GeoTrust Global CA verificar erro: num = 19: certificado autoassinado na cadeia de certificados verificar retorno: 0 --- Cadeia de certificados 0 s: / serialNumber = tG0GnsyAUkdX7DEo15ylNBjQJqAWZ / dD / OU = 4159320284 / OU = Consulte www.rapidssl.com/resources/cps (c) 14 / OU = Controle de domínio validado - RapidSSL (R) /CN=secure.emailsrvr.com i: / C = EUA / O = GeoTrust, Inc./CN=RapidSSL CA ----- COMEÇAR CERTIFICADO ----- ----- TERMINAR CERTIFICADO ----- 1 s: / C = EUA / O = GeoTrust, Inc./CN=RapidSSL CA i: / C = EUA / O = GeoTrust Inc./CN=GeoTrust Global CA ----- COMEÇAR CERTIFICADO ----- ----- TERMINAR CERTIFICADO ----- 2 s: / C = EUA / O = GeoTrust Inc./CN=GeoTrust Global CA i: / C = EUA / O = GeoTrust Inc./CN=GeoTrust Global CA ----- COMEÇAR CERTIFICADO ----- ----- TERMINAR CERTIFICADO ----- --- Certificado do servidor subject = / serialNumber = tG0GnsyAUkdX7DEo15ylNBjQJqAWZ / dD / OU = 4159320284 / OU = Consulte www.rapidssl.com/resources/cps (c) 14 / OU = Controle de domínio validado - RapidSSL (R) /CN=secure.emailsrvr.com emissor = / C = US / O = GeoTrust, Inc./CN=RapidSSL CA --- Nenhum nome de CA de certificado de cliente enviado --- O handshake SSL leu 3876 bytes e gravou 319 bytes --- Novo, TLSv1 / SSLv3, a cifra é DHE-RSA-AES256-SHA A chave pública do servidor é 2048 bits A renegociação segura é suportada Compressão: NENHUM Expansão: NENHUM Sessão SSL: Protocolo: TLSv1 Cifra: DHE-RSA-AES256-SHA ID da sessão: 3F4EE3992B46727BE2C7C3E76A9A6A8D64D66EE843CB1BB17A76AE2E030C7161 ID da sessão-ctx: Chave mestra: 016209E50432EFE2359DB73AB527AF718152BFE6F88215A9CE40604E8FF2E2A3AC97A175F46DF737596866A8BC8E3F7F Argumento-chave: nenhum Hora de início: 1397678467 Tempo limite: 300 (s) Verificar código de retorno: 19 (certificado autoassinado na cadeia de certificados) --- FEITO
Eu tenho tentado entender se isso é significativo, porque quando a -CApath
opção é fornecida, os comandos não produzem erros:
openssl s_client -CApath /etc/ssl/certs -showcerts -connect secure.emailsrvr.com:995
CONNECTED(00000003)
depth=2 C = US, O = GeoTrust Inc., CN = GeoTrust Global CA
verify return:1
depth=1 C = US, O = "GeoTrust, Inc.", CN = RapidSSL CA
verify return:1
depth=0 serialNumber = tG0GnsyAUkdX7DEo15ylNBjQJqAWZ/dD, OU = 4159320284, OU = See www.rapidssl.com/resources/cps (c)14, OU = Domain Control Validated - RapidSSL(R), CN = secure.emailsrvr.com
verify return:1
...
openssl s_client -CApath /etc/ssl/certs -showcerts -connect pop.gmail.com:995
CONNECTED(00000003)
depth=3 C = US, O = Equifax, OU = Equifax Secure Certificate Authority
verify return:1
depth=2 C = US, O = GeoTrust Inc., CN = GeoTrust Global CA
verify return:1
depth=1 C = US, O = Google Inc, CN = Google Internet Authority G2
verify return:1
depth=0 C = US, ST = California, L = Mountain View, O = Google Inc, CN = pop.gmail.com
verify return:1
...
Também posso usar a -CAfile
opção com sucesso depois de baixar o certificado CAfile diretamente do GeoTrust.
No entanto, a Fog Creek parece pensar que esse problema está no certificado, porque eles tentaram adicionar o certificado à Trust
loja mono sem sucesso. Eu discordaria deles, mas (como mencionado acima), embora a maioria dos verificadores SSL não verifique a porta 995 ou tenha êxito durante a tentativa, encontrei esta página que produz o erro SSL 7.
Interpreto a saída corretamente para significar que não há nada errado com o certificado?
openssl s_client
que não importa nenhum certificado de raiz por padrão. Tente isso:: openssl s_client -connect secure.emailsrvr.com:995 -showcerts -CApath /etc/ssl/certs
e provavelmente você descobrirá que o erro autoassinado desaparece.