将证书添加到java密钥库,仍然是错误

时间:2016-04-12 23:13:43

标签: java security ssl

根据各种网络输入,我按照以下步骤将证书添加到我的本地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

  4. 这显示证书成功添加的消息。我使用keytool的list命令验证了哪些

    1. 然后我重新启动了我的机器,并尝试再次运行我的Java程序,但仍然收到错误:
    2. “sun.security.validator.ValidatorException:PKIX路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException:无法找到所请求目标的有效证书路径”

      使用的JDK:1.8.0_31,Windows 7

      请帮忙!

2 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:1)

有两种类型的设置我们能够使其工作:

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

  2. 在第二台机器上,用户执行了默认的istallation,存在以下文件夹结构: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中的cacart并不起作用)