已将证书添加到java密钥库,仍然存在错误

已将证书添加到java密钥库,仍然存在错误,java,security,ssl,Java,Security,Ssl,基于各种web输入,我按照以下步骤将证书添加到本地jdk密钥库: 通过从Linux主机点击以下命令下载证书:openssl s_client-connectmyservice:443-showcerts 复制了(包括)--开始证书------和------结束证书------之间的内容,并将其保存为C:\Java\jre\lib\security\cer1.cer 键入:C:\Java\jre\bin>keytool-keystore C:\Java\jre\lib\security\cacer

基于各种web输入,我按照以下步骤将证书添加到本地jdk密钥库:

  • 通过从Linux主机点击以下命令下载证书:openssl s_client-connectmyservice:443-showcerts

  • 复制了(包括)--开始证书------和------结束证书------之间的内容,并将其保存为C:\Java\jre\lib\security\cer1.cer

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

  • 这显示了一条成功添加证书的消息。我使用keytool的list命令对其进行了验证

  • 然后我重新启动了我的机器,并尝试再次运行我的Java程序,但仍不断出现错误:
  • “sun.security.validator.ValidatorException:PKIX路径生成失败:sun.security.provider.certpath.SunCertPathBuilderException:找不到请求目标的有效证书路径”

    JDK使用:1.8.031,Windows 7


    请帮忙

    如果您使用的是JDK,那么将其添加到JRE信任库不会有帮助。您需要将其添加到JDK内部的JRE信任库中。

    如果您使用的是JDK,将其添加到JRE信任库将没有帮助。您需要将它添加到JDK内部的JRE信任库中。

    有两种类型的设置可以让它工作:

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

  • 在第二台计算机上,用户执行了默认的iInstallation,存在以下文件夹结构: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上更新cacarts不起作用)


  • 有两种类型的设置可以让它正常工作:

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

  • 在第二台计算机上,用户执行了默认的iInstallation,存在以下文件夹结构: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上更新cacarts不起作用)


  • 嗨,EJP,谢谢你调查这件事。是的,我将其添加到JDK内部的JRE中(我仔细检查了我的类路径是否指向我的JDK),但错误仍然存在
    C:\Java\JRE
    是安装的JRE,而不是JDK内部的JRE。实际上,Java文件夹仅是JDK,我之前将其命名为Java。它包含自述文件,该文件还确认其JDK。它有自己的bin、jre、lib等文件夹,还有一些我尝试过的东西似乎已经奏效了:我没有更新jdk/jre/lib/security的cacerts,而是更新了jdk/lib/security(没有jre)和它现在的工作状态!!!!但真的很感谢你,EJP,你的回答让我的思维过程开始运作,我试着从书本之外的角度来看待事情。谢谢你的时间和努力!嗨,EJP,谢谢你调查这件事。是的,我将其添加到JDK内部的JRE中(我仔细检查了我的类路径是否指向我的JDK),但错误仍然存在
    C:\Java\JRE
    是安装的JRE,而不是JDK内部的JRE。实际上,Java文件夹仅是JDK,我之前将其命名为Java。它包含自述文件,该文件还确认其JDK。它有自己的bin、jre、lib等文件夹,还有一些我尝试过的东西似乎已经奏效了:我没有更新jdk/jre/lib/security的cacerts,而是更新了jdk/lib/security(没有jre)和它现在的工作状态!!!!但真的很感谢你,EJP,你的回答让我的思维过程开始运作,我试着从书本之外的角度来看待事情。谢谢你的时间和努力!这是另一件在同事的机器上工作的东西。安装后,他们在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文件夹(实际上存在于我的机器上)我仍然在这方面苦苦挣扎我添加了证书,我仍然收到了错误..你能帮我一下吗。。。我正在使用OpenJDK 11。。。我还不明白两个人是怎么回事machines@dhS你能分享你的文件夹结构并显示你的路径变量吗。我想确保您使用的是您正在添加证书的同一个java。我对此感到非常困惑。我更新了java,证书昨天成功连接,但今天我再次发现它给出了相同的异常,我无法理解它昨天是如何工作的,而今天它不工作。如果你在线,我们可以聊天。还有一件事,在同事的机器上工作。安装后,他们在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文件夹(实际上存在于我的机器上)我仍然在这方面苦苦挣扎我添加了证书,我仍然收到了错误..你能帮我一下吗。。。我正在使用OpenJDK 11。。。我