sun.security.validator.ValidatorException:PKIX路径构建失败,java> 1.6

时间:2017-02-02 17:09:38

标签: java oracle ssl jvm

我有一个Java JAR应用程序,它连接到HTTPS后面的服务器上运行的Java Web服务。如果我使用Oracle Java 1.6运行JAR,则SSL握手成功。但是,如果我使用Oracle Java 1.7或更高版本运行它,我总是得到例外:Promise.all()

我已将证书导入sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target文件,并使用VM变量cacert设置文件的路径。

我发现在不同的Java版本中jsse.jar存在差异。

此外,此应用程序在安装了IBM Java版本的Unix计算机上运行时效果如预期:javax.net.ssl.trustStore

并且,它与Widnows上的IBM JRE一起正常工作:

IBM J9 VM (build 2.7, JRE 1.7.0

我该怎么做才能解决这个问题?

1 个答案:

答案 0 :(得分:0)

我解决了这个问题! Java在java.security文件夹中有jre/lib/security个文件,该文件具有属性keystore.type。此属性设置为Windows-ROOT,但我已在cacerts文件中导入证书,并且该属性应设置为jks,以便Java读取cacerts文件!