我正在使用 JDK 1.7.0_45 并尝试获取我的 IMAP 收件箱,但出现异常
sun.security.validator.ValidatorException:PKIX 路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException:无法找到请求目标的有效证书路径
因此,我发现需要通过 keytool 将证书添加到 Java 信任库 cacerts ($JAVA_HOME/jre7/libs/security)。我的 IMAP 服务器的证书是由 StartCom 颁发的,所以我想我需要添加他们的根证书。我按照 这些说明将证书添加到全局 Java 信任库 cacerts。但是,我仍然得到同样的例外。我还尝试创建自己的密钥库文件(.pks),添加证书并运行应用程序
-Djavax.net.ssl.keyStore=path/to/myown.jks
这也不起作用。据我了解,添加颁发证书的根机构的证书就足够了。
我必须做什么才能让 Java 接受我的 IMAP 邮箱的证书?
一个附带的问题:当我发布一个 Java 应用程序(例如电子邮件客户端)时,它可能需要默认 Java 信任库中不包含的证书,让用户添加新证书的最不令人生畏的方法是什么?