Desde que nuestro proveedor de correo electrónico cambió su certificado SSL, un cliente POP3 basado en mono se niega a conectarse a su servidor POP seguro para descargar correos electrónicos. Otros clientes no tienen un problema; por ejemplo, Thunderbird y Outlook; tampoco lo hacen la mayoría de los sitios de verificación SSL que son capaces de verificar puertos impares, excepto este . He estado trabajando con ambos proveedores en un intento por identificar el problema, pero finalmente he llegado a un punto muerto con ambos, ya que no sé lo suficiente sobre los Certificados SSL para poder guiar a cualquiera de los proveedores a comprender dónde está la falla.
Durante la investigación, me llamó la atención la diferencia en la salida de los siguientes dos comandos (he eliminado los certificados de la salida para facilitar la lectura):
echo "" | openssl s_client -showcerts -connect pop.gmail.com:995
CONECTADO (00000003) profundidad = 2 / C = US / O = GeoTrust Inc./CN=GeoTrust Global CAerror de verificación : num = 20: no se puede obtener el certificado de emisor local verificar devolución: 0 --- Cadena de certificados 0 s: / C = US / ST = California / L = Mountain View / O = Google Inc / CN = pop.gmail.com i: / C = US / O = Google Inc / CN = Autoridad de Internet de Google G2 ----- COMIENCE EL CERTIFICADO ----- ----- FINALIZAR CERTIFICADO ----- 1 s: / C = US / O = Google Inc / CN = Google Internet Authority G2 i: / C = US / O = GeoTrust Inc./CN=GeoTrust Global CA ----- COMIENCE EL CERTIFICADO ----- ----- FINALIZAR CERTIFICADO ----- 2 s: / C = US / O = GeoTrust Inc./CN=GeoTrust Global CA i: / C = US / O = Equifax / OU = Equifax Secure Certificate Authority ----- COMIENCE EL CERTIFICADO ----- ----- FINALIZAR CERTIFICADO ----- --- Certificado del servidor subject = / C = US / ST = California / L = Mountain View / O = Google Inc / CN = pop.gmail.com emisor = / C = US / O = Google Inc / CN = Autoridad de Internet de Google G2 --- No se enviaron nombres de CA de certificado de cliente --- El protocolo de enlace SSL ha leído 3236 bytes y escrito 435 bytes --- Nuevo, TLSv1 / SSLv3, Cipher es RC4-SHA La clave pública del servidor es de 2048 bits La renegociación segura es compatible Compresión: NINGUNO Expansión: NINGUNO Sesión SSL: Protocolo: TLSv1 Cifrado: RC4-SHA ID de sesión: 745F84194498529B91B7D9194363CBBD23425446CF2BFF3BF5557E3C6606CA06 Session-ID-ctx: Master-Key: DED1AE0A44609F9D6F54626F4370ED96436A561A59F64D66240A277066322DCD2CCB9A6D198C95F4D2B0C7E6781EECD2 Key-Arg: Ninguno Hora de inicio: 1397678434 Tiempo de espera: 300 (seg) Verifique el código de retorno: 20 (no se puede obtener el certificado de emisor local) --- + OK Gpop listo para solicitudes de 69.3.61.10 c13mb42148040pdj HECHO
echo "" | openssl s_client -showcerts -connect secure.emailsrvr.com:995
CONECTADO (00000003) profundidad = 2 / C = US / O = GeoTrust Inc./CN=GeoTrust Global CAerror de verificación : num = 19: certificado autofirmado en la cadena de certificados verificar devolución: 0 --- Cadena de certificados 0 s: / serialNumber = tG0GnsyAUkdX7DEo15ylNBjQJqAWZ / dD / OU = 4159320284 / OU = Ver www.rapidssl.com/resources/cps (c) 14 / OU = Control de dominio validado - RapidSSL (R) /CN=secure.emailsrvr.com i: / C = US / O = GeoTrust, Inc./CN=RapidSSL CA ----- COMIENCE EL CERTIFICADO ----- ----- FINALIZAR CERTIFICADO ----- 1 s: / C = US / O = GeoTrust, Inc./CN=RapidSSL CA i: / C = US / O = GeoTrust Inc./CN=GeoTrust Global CA ----- COMIENCE EL CERTIFICADO ----- ----- FINALIZAR CERTIFICADO ----- 2 s: / C = US / O = GeoTrust Inc./CN=GeoTrust Global CA i: / C = US / O = GeoTrust Inc./CN=GeoTrust Global CA ----- COMIENCE EL CERTIFICADO ----- ----- FINALIZAR CERTIFICADO ----- --- Certificado del servidor subject = / serialNumber = tG0GnsyAUkdX7DEo15ylNBjQJqAWZ / dD / OU = 4159320284 / OU = Ver www.rapidssl.com/resources/cps (c) 14 / OU = Control de dominio validado - RapidSSL (R) /CN=secure.emailsrvr.com emisor = / C = US / O = GeoTrust, Inc./CN=RapidSSL CA --- No se enviaron nombres de CA de certificado de cliente --- El protocolo de enlace SSL ha leído 3876 bytes y escrito 319 bytes --- Nuevo, TLSv1 / SSLv3, Cipher es DHE-RSA-AES256-SHA La clave pública del servidor es de 2048 bits La renegociación segura es compatible Compresión: NINGUNO Expansión: NINGUNO Sesión SSL: Protocolo: TLSv1 Cifrado: DHE-RSA-AES256-SHA ID de sesión: 3F4EE3992B46727BE2C7C3E76A9A6A8D64D66EE843CB1BB17A76AE2E030C7161 Session-ID-ctx: Master-Key: 016209E50432EFE2359DB73AB527AF718152BFE6F88215A9CE40604E8FF2E2A3AC97A175F46DF737596866A8BC8E3F7F Key-Arg: Ninguno Hora de inicio: 1397678467 Tiempo de espera: 300 (seg) Verifique el código de retorno: 19 (certificado autofirmado en la cadena de certificados) --- HECHO
He estado tratando de entender si esto es significativo, porque cuando -CApath
se proporciona la opción, los comandos no producen ningún error:
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
...
También puedo usar la -CAfile
opción con éxito después de descargar el certificado CAfile directamente desde GeoTrust.
Sin embargo, Fog Creek parece pensar que el problema radica en el certificado, porque han intentado agregar el certificado a la Trust
tienda de mono sin éxito. No estaría de acuerdo con ellos, pero (como se mencionó anteriormente) aunque la mayoría de los verificadores SSL no verifican el puerto 995 o no tienen éxito durante el intento, encontré esta página que produce el error 7 de SSL.
¿Interpreto correctamente la salida que significa que no hay nada malo con el certificado?
openssl s_client
que no importa ningún certificado raíz de forma predeterminada. Intente esto en su lugar: openssl s_client -connect secure.emailsrvr.com:995 -showcerts -CApath /etc/ssl/certs
y probablemente encontrará que el error autofirmado desaparece.