pkix路径构建失败:我向carcert添加的证书仍然失败

h5qlskok  于 2021-07-07  发布在  Java
关注(0)|答案(1)|浏览(630)

我面临这个问题与pkix路径建设失败,这是我所尝试的。。。
我转到了我试图访问的目标url

(eg -> https://localdevchannel.master.info/Gate/CustomerManagement/rest/resources/search)

我点击了“锁”图标并导出了证书。
我在命令下跑。。。
keytool-importcert-file sec.cer-storepass changeit-keystore“c:/program files/java/jdk-11.0.2/jdk-11.0.2/lib/security/cacerts”-别名seccert
证书已成功放置。但我仍然面临这个问题。请帮帮我,我做错什么了?

javax.net.ssl.SSLHandshakeException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
jjhzyzn0

jjhzyzn01#

好 啊,
如果您的证书已过期,或者存储中不存在,或者您更新了另一个cacert文件,并且您的java/和/或应用程序正在查看/使用另一个cacert文件,则会出现此异常。
1-检查您的cacert文件以实际查看证书是否添加了别名。
在jdk/jre/bin中,您可以找到keytool.exe,您可以如下调用它来读取cacerts文件:

susan@SE-00018098 /c/Program Files/Java/jdk1.7.0_80/jre/bin

$ keytool.exe -list -keystore ../lib/security/cacerts
Enter keystore password:
Keystore type: jks
Keystore provider: SUN

Your keystore contains 92 entries

digicertassuredidrootca, 2008-apr-16, trustedCertEntry,
Certificate fingerprint (SHA1): 05:63:B8:63:0D:62:D7:5A:BB:C8:AB:1E:4B:DF:B5:A8:99:B2:4D:43
trustcenterclass2caii, 2008-apr-29, trustedCertEntry,
Certificate fingerprint (SHA1): AE:50:83:ED:7C:F4:5C:BC:8F:61:C6:21:FE:68:5D:79:42:21:15:6E
thawtepremiumserverca, 2009-dec-11, trustedCertEntry,
Certificate fingerprint (SHA1): E0:AB:05:94:20:72:54:93:05:60:62:02:36:70:F7:CD:2E:FC:66:66
swisssignplatinumg2ca, 2008-okt-31, trustedCertEntry,

2-如果是,是否过期?检查日期。
3-确认你的app/java运行时是否正在使用你刚刚更新的cacert文件(你是否安装了多个java版本?你的家是什么
==========已编辑
如果证书存在,并且没有过期,并且您100%确定它是正确的证书,那么您的应用程序/或容器可能没有查看cacert文件。
尝试下面的黑客:我认为这是一个黑客,因为您正在硬编码一个路径,当您部署在不同的服务器上时,该路径可能/不存在。
有许多方法可以创建自己的信任库和密钥库,并将它们放在应用程序本身中,然后您可以将它们合并到代码中,但请尝试一下,看看其余的代码是否正常工作。
在https连接代码之前设置系统属性:

System.setProperty("javax.net.ssl.trustStore", "java_home_path/jre/lib/security/cacerts");

替换为cacerts文件的正确路径,然后重试。

相关问题