【问题标题】:added certificate to java keystore, still error将证书添加到 java 密钥库,仍然错误
【发布时间】:2016-08-03 19:15:02
【问题描述】:

根据各种网络输入,我按照以下步骤将证书添加到我的本地 jdk 密钥库:

  1. 通过从 Linux 主机点击以下命令下载证书:openssl s_client -connect MyService:443 -showcerts

  2. 在 ------BEGIN CERTIFICATE-------- 和 --------END CERTIFICATE--------- 之间复制了内容(包括在内) , 保存为 C:\Java\jre\lib\security\cer1.cer

  3. 键入:C:\Java\jre\bin>keytool -keystore C:\Java\jre\lib\security\cacerts -importcert -alias cer1 -file C:\Java\jre\lib\security\ cer1.cer

这显示了证书添加成功的消息。我使用 keytool 的 list 命令验证了这一点

  1. 然后我重新启动了我的机器,并尝试再次运行我的 Java 程序,但仍然出现错误:

“sun.security.validator.ValidatorException:PKIX 路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException:无法找到到请求目标的有效证书路径”

使用的JDK:1.8.0_31,Windows 7

请帮忙!

【问题讨论】:

    标签: java security ssl


    【解决方案1】:

    如果您使用的是 JDK,将其添加到 JRE 信任库将无济于事。您需要将其添加到 JDK 内部的 JRE 的信任库中。

    【讨论】:

    • 您好 EJP 感谢您对此进行调查。是的,我将此添加到 JDK 内的 JRE(我仔细检查了我的类路径是否指向我的 JDK),但错误仍然存​​在
    • C:\Java\jre是安装的JRE,不是JDK里面的。
    • 其实java文件夹只是JDK而已,我之前把它命名为java。它包含自述文件,该文件也确认了它的 JDK。它也有自己的 bin、jre、lib 等文件夹
    • 我尝试过的一些尝试和尝试似乎奏效了:我没有更新 jdk/jre/lib/security 的 cacerts,而是更新了 jdk/lib/security(没有 jre)及其现在可以工作!!!!但真的谢谢你 EJP,你发布的那个答案让我的思维过程正常工作,我试图从书本的角度来看事情。感谢您的时间和精力!
    【解决方案2】:

    我们可以通过两种类型的设置使其工作:

    1. 在一台机器上,安装 JDK 的人对安装 Java 的文件夹结构进行了一些更改,并具有以下结构:Java/jre/lib/security 以及 Java/lib/security。我们在 Java/lib/security 的 cacerts 中添加了证书,它开始工作了

    2. 在用户执行默认安装的第二台计算机上,存在以下文件夹结构:Java/jre_1.8/lib/security 和 Java/jdk_1.8/jre/lib/security。我们在 Java/jre_1.8/lib/security 更新了 cacerts,它开始工作了(由于某种原因,在 Java/jdk_1.8/jre/lib/security 更新 cacartes 没有用)

    【讨论】:

    • 还有另一件事,它在同事的机器上工作。安装后他们在 C:\Program Files\Java 下创建了一个 jdk_1.8 文件夹和一个 jre_1.8 文件夹。首先我们尝试在 jdk_1.8/jre/lib/security/cacerts 中添加证书,但没有奏效。然后我们将证书添加到 jre_1.8/lib/security/cacerts - 它起作用了。他们的机器上没有 jdk_1.8/lib/security 文件夹(实际上存在于我的机器上)
    • 我仍然在这方面苦苦挣扎我添加了证书但我仍然收到错误..你能帮我解决这个问题吗...我正在使用 AdoptOpenJDK 11...我仍然不明白两台机器是如何
    • @dhS 您能否分享您的文件夹结构并显示您的 PATH 变量中的内容。我想确保您使用的是要添加证书的相同 java
    • 我真的很困惑我更新了java并且证书昨天成功连接,但是今天我再次发现它给出了同样的异常,我无法理解它昨天和今天是如何工作的它不工作。如果您在线,我们可以聊天。
    猜你喜欢
    • 2020-06-04
    • 2012-04-22
    • 2018-01-24
    • 2013-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-05
    相关资源
    最近更新 更多