Olá, pessoal!
Estou enfrentando um problema ao tentar enviar e-mails usando Java com o protocolo TLS. Já importei o certificado necessário no Java utilizando keytool
, mas continuo recebendo o seguinte erro relacionado ao handshake SSL:
**javax.mail.MessagingException: Could not convert socket to TLS;
nested exception is:
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target**
Abaixo, segue parte do log do erro para referência:
**2024-11-21 19:27:24,439 ERROR [EMA1_6406 ] common.sender.ReportSender sendEmail():272 - Erro no envio do email! [to:[usuário_oculto], server:smtp-server, security:null, usr(auth):********, ssl:false, tls:false, smtpPort:587, timeout:60s]**
org.apache.commons.mail.EmailException: Sending the email to the following server failed : smtp-server:587**
at org.apache.commons.mail.Email.sendMimeMessage(Email.java:1242)**
at org.apache.commons.mail.Email.send(Email.java:1267)**
** ...**
**Caused by: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at sun.security.ssl.Alerts.getSSLException(Alerts.java:192)
at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1946)**
Já tentei as seguintes soluções:
- Importação do certificado: Usei o comando
keytool -importcert
para importar o certificado nocacerts
do Java. O comando foi executado com sucesso. - Verificação da instalação: Confirmei que o certificado foi adicionado corretamente ao truststore utilizando
keytool -list
. - Teste de conexão: Consegui estabelecer conexão manualmente com o servidor SMTP usando
openssl
sem problemas.
Pode ser algum problema com o certificado da cadeia (chain certificate)?