Tengo una javax.net.ssl.SSLHandshakeException pero mi colega no, ¿qué podría significar esto?

2

Al intentar enviar un correo electrónico a través de smtp con SSL en el código Java, obtengo la siguiente excepción:

  

Falló la construcción de la ruta PKIX:   sun.security.provider.certpath.SunCertPathBuilderException: no se puede   encontrar la ruta de certificación válida para el objetivo solicitado. Mensajes fallidos:   javax.mail.MessagingException: no se pudo conectar al host SMTP:

Esto tendría sentido si el servidor SMTP al que me acerco utilizara algún certificado autofirmado que simplemente no importé pero no creo que ese sea el caso, porque cuando mi colega (en otro país) ejecuta la operación exacta mismo código funciona bien.

¿Qué podría significar esto?

  • Mi computadora portátil está comprometida
  • Mi proveedor de internet está haciendo algo sospechoso
  • Algo más
  • Todas las anteriores

Para que conste, vivo en Indonesia y hay algunos sitios que están bloqueados.

Puedo hacer ping, se necesita una contraseña para este servidor SMTP, la configuración está bien (funciona para mi colega). He intentado esto con mi VPN encendida y apagada.

    
pregunta Sebastiaan van den Broek 26.02.2018 - 07:26
fuente

2 respuestas

3

Si el servidor SMTP está utilizando un certificado autofirmado y no importó el certificado como de confianza, esta excepción sería la esperada y algo sería incorrecto (inseguro) con su código si no recibe este error. Si, en cambio, el certificado debe estar firmado por una CA pública, puede ser un problema que no confíe en esta CA en su código por alguna razón (poco probable), que el servidor haya enviado una CA diferente (es decir, la interceptación SSL). ) o que el servidor no está correctamente configurado y puede que falte un certificado de cadena.

Si funciona para sus colegas, debe verificar con ellos qué hacen diferentes. Puede ser que obtengan un certificado diferente, entonces usted si tienen una conectividad de red diferente (es decir, uno sin intercepción SSL versus uno con intercepción SSL). También puede ser que hayan importado explícitamente el certificado relevante como de confianza. O puede ser que ignoren explícitamente los errores de certificado en su código. Y aunque ignorar los errores de certificados suele ser una idea terrible, ya que hace que los ataques en el centro no sean detectables, sigue siendo una solución recomendada por los usuarios que no entienden o no se preocupan por la seguridad.

    
respondido por el Steffen Ullrich 26.02.2018 - 07:53
fuente
0

La autoridad de certificación era Comodo, lo cual estaba bien, después de ejecutar keytool -printcert -sslserver host según el comentario de Dave, descubrí que el problema estaba en mi final con mi antivirus (Avast) insertando su propio certificado. Incluso después de deshabilitar el escaneo SSL y el escaneo SMTP, el certificado aún se mostraba como suyo, así que desafortunadamente tuve que deshabilitar todo el componente.

    
respondido por el Sebastiaan van den Broek 26.02.2018 - 16:10
fuente

Lea otras preguntas en las etiquetas