更新证书之后,发现之前跑的好好的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.