更新證書之後,發現之前跑的好好的java 程序不work了,納尼。。。查日誌,發現敵軍:
The request failed. sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target;
Google 一通,偶得一佳文,正適宜,可觀可試,各位看官自行查閱:
http://magicmonster.com/kb/prg/java/ssl/pkix_path_building_failed.html
結合上文,知道更新網站證書之後,java cacerts 可能並不包含我們的新證書,所以需要出現上邊的異常信息。
怎樣查看證書是否包含在java cacerts 中呢,看官往下看:
- 導出java cacerts
keytool -list -v -keystore F:/jdk_1.8.0_66/jre/lib/security/cacerts > F:/java_cacerts.txt
2 訪問我們的站點,然後查看證書信息
查看 Serial Number(全小寫,去掉:分割符)是否在我們導出的java_cacerts 文件中,若不存在就需要我們自己導入證書了。
- 導入證書
keytool -import -alias example -keystore F:/jdk_1.8.0_66/jre/lib/security/cacerts -file C:/Users/Jaden.Gu/Desktop/work_dev_tool/example.crt -trustcacerts
到這裏看官可能會問,證書從哪裏來? 聰明的你可能想到了,沒錯,從firefox導出來的。那怎麼導出證書呢,看下圖:
注意導入證書後,需要重啓jvm.