【问题标题】:Could not find trusted certificate找不到受信任的证书
【发布时间】:2011-03-14 18:50:36
【问题描述】:

问题:

我收到来自 javax.net.ssl.SSLHandshakeException 的抛出错误(见附图)

Java 是否有可能存在损坏或丢失的 CA 证书?如果是这样,我该如何修复或解决此问题/错误?

我尝试过的事情:

  1. 我已从 PC 中删除所有版本的 JRE,并安装了最新版本的 JRE (1.6.14)。
  2. 从证书的用户部分清理并删除了所有不必要的可信证书。
  3. 尝试运行 keytool 来获取 CA 的指纹

在尝试运行 keytool 时,我得到以下信息:

keytool 错误:java.security.cert.CertificateParsingException:java.io.IOException:主题密钥,java.security.spec.InvalidKeySpecException:未知密钥规范。

【问题讨论】:

  • 您能否提供一些您尝试连接的网址的详细信息?
  • 由于隐私控制,我无法释放我尝试连接的 URL。我尝试在另一台机器上连接成功。所以我知道这是一个环境问题,而不是代码问题或服务器端问题。

标签: java ssl-certificate certificate-authority


【解决方案1】:

理论上有可能,但 IMO 极不可能,Java 具有损坏的 CA 证书。您想要的 CA 证书很可能不在 JRE 的 cacerts 存储中。您可以使用“keytool”检查商店的内容(至少在 Linux 上);例如

keytool -list -keystore /usr/java/jdk1.6.0_14/jre/lib/security/cacerts

扫描该列表以查看您是否可以看到您的 URL 所需的 CAcert 的指纹。

参考:JDK 6.0 JDK Development Tools / Security Tools 页面/部分。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-04-14
    • 1970-01-01
    • 2018-10-15
    • 1970-01-01
    • 2018-09-28
    • 2013-03-14
    • 1970-01-01
    • 2012-07-05
    相关资源
    最近更新 更多