又遇到了java證書問題,以前弄過,現在已經忘記干凈了。
一、調用第三方SDK,提示下面報錯信息
PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
解決方案:
這個報錯信息的字面意思是 證書build失敗,找不到路徑下面的證書,也就是說,你需要提供證書來訪問。可以百度下如何使用證書訪問。
二、當我提供了證書,我使用的方式是,使用如下命令設置項目全局證書使用
方式一:
System.setProperty("javax.net.ssl.trustStore", "./security/Client_Truststore");
方式二:你也可以把證書放到jre路徑下面
keytool命令,具體使用方式,傳送門地址:https://blog.csdn.net/dling8/article/details/101872939
方式三:你還可以在項目啟動使用參數方式來指定證書:
-Djavax.net.ssl.trustStore=.\security\Client_Truststore
三、當我一切准備就緒,要執行時,提示我找不到可以驗證的CA證書
sun.security.validator.ValidatorException:
PKIX path validation failed: sun.security.validator.ValidatorException:
TrustAnchor with subject "CN=xxx, OU=xxx.cn, O=xxx, ST=Guangdong, C=CN" is not a CA certificate
嘗試很多次,同事使用JDK 1.8(1.8.0_181),我本機器使用JDK 1.8(1.8.0_251-b08),除了操作系統不一樣,其他一樣,還是么有啟動成功,后來我改為了Open-JDK11.2(openjdk64-11.0.2),居然啟動成功了,很奇怪的一次體驗。