Eclipse не может найти действительный путь сертификации для запрошенной цели - PullRequest
0 голосов
/ 18 марта 2019

Я пытаюсь отправить электронное письмо через smtp на smtp.mailgun.org. Меня не беспокоит код Java, который пытается отправить электронное письмо.

Окружающая среда:

Java 10 Eclipse Photon Java 1.8.0_191: com.sun.mail.javax.mail: 1.6.2

Я пытаюсь отправить через 587 с использованием TLS. У меня нет большого опыта создания или изменения хранилищ ключей.

В eclipse.ini я добавил следующие два аргумента после -vmargs

-Djavax.net.ssl.trustStore="C:/Program Files/Java/jdk1.8.0_192/jre/lib/security/cacerts "

-Djavax.net.ssl.trustStorePassword="password"

Я перезапустил Eclipse и продолжаю получать сообщение об ошибке ниже.

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
        at com.sun.mail.smtp.SMTPTransport.startTLS(SMTPTransport.java:1652)
        at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:534)
        at javax.mail.Service.connect(Service.java:291)
        at javax.mail.Service.connect(Service.java:172)
        at com.mako.mg.manager.MakoMailGunSmtpManager.sendEmail(MakoMailGunSmtpManager.java:158)
        at com.mako.mg.manager.MakoMailGunSmtpManager.main(MakoMailGunSmtpManager.java:180)
    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(Unknown Source)
        at sun.security.ssl.SSLSocketImpl.fatal(Unknown Source)
        at sun.security.ssl.Handshaker.fatalSE(Unknown Source)
        at sun.security.ssl.Handshaker.fatalSE(Unknown Source)
        at sun.security.ssl.ClientHandshaker.serverCertificate(Unknown Source)
        at sun.security.ssl.ClientHandshaker.processMessage(Unknown Source)
        at sun.security.ssl.Handshaker.processLoop(Unknown Source)
        at sun.security.ssl.Handshaker.process_record(Unknown Source)
        at sun.security.ssl.SSLSocketImpl.readRecord(Unknown Source)
        at sun.security.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source)
        at sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source)
        at sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source)
        at com.sun.mail.util.SocketFetcher.configureSSLSocket(SocketFetcher.java:503)
        at com.sun.mail.util.SocketFetcher.startTLS(SocketFetcher.java:443)
        at com.sun.mail.smtp.SMTPTransport.startTLS(SMTPTransport.java:1647)
        ... 5 more
    Caused by: 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.validator.PKIXValidator.doBuild(Unknown Source)
        at sun.security.validator.PKIXValidator.engineValidate(Unknown Source)
        at sun.security.validator.Validator.validate(Unknown Source)
        at sun.security.ssl.X509TrustManagerImpl.validate(Unknown Source)
        at sun.security.ssl.X509TrustManagerImpl.checkTrusted(Unknown Source)
        at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(Unknown Source)
        ... 16 more
    Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
        at sun.security.provider.certpath.SunCertPathBuilder.build(Unknown Source)
        at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(Unknown Source)
        at java.security.cert.CertPathBuilder.build(Unknown Source)
        ... 22 more

У моего Eclipse возникли проблемы с использованием cacerts? или мне нужно создать хранилище ключей из cacerts?

Я не могу найти c:\users\<myuser>\.keystore. Я настроен на просмотр скрытых файлов и папок.

Спасибо за помощь в решении этой проблемы.

1 Ответ

1 голос
/ 18 марта 2019

Я добавил -Djavax.net.debug = ssl и просмотрел шаги до сбоя. Я обнаружил, что мой антивирус мешает и вызывает сбой. Выключил антивирус для тестирования и письмо было успешно отправлено.

Нашел на сайте AVG ссылку со следующими шагами

откройте AVG Antivirus, нажмите Меню-> Настройки-> Компоненты-> Электронная почта Сканер-> Настроить. В следующем окне «Основные настройки», пожалуйста, отключите «сканирование исходящей электронной почты» и дайте нам знать, если это решает выпуск.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...