linux服務器更新JDK,從jdk1.7升級到jdk1.8,導致java訪問https地址時程序報錯。
ERROR [xxx] 2019-10-12 18:00:14 [DubboServerHandler-xxx-thread-xxx] [xxxHttpSendHandler] - xxx{} javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
解決方法:
1、用瀏覽器登錄該https網站,在瀏覽器地址欄裏找到“證書信息”->“詳細信息”->“複製到文件”->選擇DER編碼二進制X.509(.CER)(D) 導出證書,如證書名爲pro1.cer;
2、將pro1.cer上傳至服務器/usr/java;
3、執行keytool -import -alias pro1 -keystore /usr/java/jdk1.8.0/jre/lib/security/cacerts -file /usr/java/pro1.cer;
4、輸入密碼:changeit
5、查看證書庫keytool -list -keystore /usr/java/jdk1.8.0/jre/lib/security/cacerts|grep pro1.cer,如找到到證書信息,代表完成導入。
6、回到程序,調試java程序不再報錯。