Java Eclipse无法找到请求目标的有效证书路径

Java Eclipse无法找到请求目标的有效证书路径,java,jakarta-mail,keystore,Java,Jakarta Mail,Keystore,我正试图通过smtp向smtp.mailgun.org发送电子邮件。我不关心试图发送电子邮件的java代码 环境: Windows 10 Eclipse光子Java 1.8.0191Java软件包: com.sun.mail.javax.mail:1.6.2 我正在尝试使用TLS发送587。我没有太多创建或修改密钥库的经验 在eclipse.ini中,我在-vmargs之后添加了以下两个参数 -Djavax.net.ssl.trustStore="C:/Program Files/Java/jd

我正试图通过smtp向smtp.mailgun.org发送电子邮件。我不关心试图发送电子邮件的java代码

环境:

Windows 10 Eclipse光子Java 1.8.0191Java软件包: com.sun.mail.javax.mail:1.6.2

我正在尝试使用TLS发送587。我没有太多创建或修改密钥库的经验

在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\\.keystore。我已配置为查看隐藏的文件和文件夹

感谢您在这个问题上的帮助。

我添加了-Djavax.net.debug=ssl,并查看了失败之前的步骤。我发现我的反病毒软件妨碍了我,导致了失败。已关闭测试的防病毒功能,电子邮件已成功发送

在AVG的网站上找到以下步骤的链接

打开AVG Antivirus,单击菜单->设置->组件->电子邮件 扫描仪->自定义。在“主设置”下的下一个窗口中,请 禁用扫描出站电子邮件,并让我们知道这是否解决了问题 问题


通常不需要指定cacerts存储。发布你的代码。您是否有具有SSL终止的工作代理?如果这样做,则需要将代理的证书添加到cacerts中或指定一个单独的存储区。