首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Javamail和gmail,"PKIX路径构建失败“

Javamail和gmail,"PKIX路径构建失败“
EN

Stack Overflow用户
提问于 2020-03-19 03:05:54
回答 1查看 751关注 0票数 1

我正在尝试运行一个独立的Java类,它将以imap的形式连接到Gmail。这是代码摘录(用户名和传递掩码)

代码语言:javascript
复制
    Properties props = System.getProperties();

    props.setProperty("mail.store.protocol", "imap"); 

    System.out.println("getting session");

    Session session = Session.getInstance(props);

    System.out.println("getting store");

    Store store = session.getStore("imaps");

    System.out.println("connecting");

    store.connect("imap.gmail.com", "xxxxx", "yyyyyy");

当尝试运行时,它会显示“连接”消息,但会抛出以下消息

代码语言:javascript
复制
javax.mail.MessagingException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target;
  nested exception is:
    javax.net.ssl.SSLHandshakeException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

我完成了以下步骤:

  • a) (来自Linux实例):openssl s_client -connect imap.gmail.com:993
  • ( b)从上面的输出将证书复制到一个pem文件中,然后在Windows上运行
代码语言:javascript
复制
keytool -keystore cacerts -import -trustcacerts -alias gmailcert -file c:\gmailcert.pem -storepass changeit

上面的步骤在这个文件夹C:\Program \Amazon Corretto\jdk11.0.6_10\lib\security中

在运行类的Eclipse中,我设置了这些jvm args

代码语言:javascript
复制
-Djavax.net.ssl.trustStore="c:/Program Files/Amazon Corretto/jdk11.0.6_10/lib/security/cacerts"
-Djavax.net.ssl.trustStorePassword="changeit"

我也试过

代码语言:javascript
复制
-Djavax.net.ssl.trustStore="c:\Program Files\Amazon Corretto\jdk11.0.6_10\lib/security\cacerts"
-Djavax.net.ssl.trustStorePassword="changeit"

代码语言:javascript
复制
-Djavax.net.ssl.trustStore="c:\\Program Files\\Amazon Corretto\\jdk11.0.6_10\\lib\\security\\cacerts"
-Djavax.net.ssl.trustStorePassword="changeit"

我还参考了这个站点,以确保我导入的gmail证书是正确的。然后我运行了一个SSLPoke实用程序并获得了相同的错误,所以这与我获取和导入证书的方式有关。

我遗漏了什么?

EN

回答 1

Stack Overflow用户

发布于 2020-03-20 20:08:38

很可能你有一个反病毒程序来拦截连接。如果您可以将其配置为允许从您的程序直接连接,则会更好。缺少这一点,请参阅JavaMail常见问题获得证书的帮助。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60750366

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档