当前位置: 首页 > 知识库问答 >
问题:

将Certificate.pfx导入cacerts,但仍然得到“PKIX...无法找到到请求目标的有效证书路径”错误。做什么?

鲜于子琪
2023-03-14
setlocal set _JAVA_OPTIONS=%_JAVA_OPTIONS%
-Djavax.net.ssl.trustStore="C:\Program Files\Java\jdk1.7.0_79\jre\lib\security\cacerts"
-Djavax.net.ssl.trustStorePassword=changeit -Djavax.net.ssl.keyStoreType=PKCS12 -Djavax.net.ssl.keyStorePassword=xxxxxxxxx -Djavax.net.ssl.keyStore="d:\cert.pfx" "C:\Program Files\Java\jdk1.7.0_79\bin\wsimport" -s C:\Users\me\keystore\bin\s
-keep https://service.xxxxxxxxxxx.de/xxxxxxxxxxxxTest?wsdl endlocal

cacerts上的转储显示cacerts中确实有一个条目。我不明白为什么java拒绝在URL上执行wsimport。

最后,我只是将url目的地下载到我的机器上,并对下载的.xml文件执行wsimport,然后更改生成的存根中的url参数。虽然没有帮助,因为当我运行应用程序时,我运行到“PKIX...无法找到有效的认证路径到请求的目标”错误。

共有1个答案

曹德明
2023-03-14

在尝试修改jvm选项之前,还需要将*.der证书导入密钥库。

以下是如何导入证书以修复以下错误的总体摘要:

尝试执行请求时出错。javax.net.ssl.sslhandShakeException:sun.security.validator.validatoreXception:PKIX路径构建失败:sun.security.provider.certPath.SunCertPathBuilderException:找不到请求目标的有效证书路径

    null

使用以下方法将所有*.der文件导入到cacerts文件中:

sudo keytool -import -alias mysitestaging -keystore $JAVA_HOME/jre/lib/security/cacerts -file staging.der
sudo keytool -import -alias mysiteprod -keystore  $JAVA_HOME/jre/lib/security/cacerts -file prod.der
sudo keytool -import -alias mysitedev -keystore  $JAVA_HOME/jre/lib/security/cacerts -file dev.der

默认密钥库密码是“changeit”

您可以查看使用该命令所做的更改,该命令显示证书指纹。

keytool -list -keystore $JAVA_HOME/jre/lib/security/cacerts
-Djavax.net.ssl.trustStore="$JAVA_HOME/jre/lib/security/cacerts"
-Djavax.net.ssl.trustStorePassword="changeit"
 类似资料: