javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path buildin详细分析Java中访问https请求exception(SSLHandshakeException, SSLPeerUnverifiedException)的原因及解决方法。
原因:在部署在linux系统的项目访问第三方webservice https接口时会抛javax.net.ssl.SSLHandshakeException异常,这是因为jdk不信任此接口地址
解决方法:
获取根证书安装证书到你的JRE的Java cacerts中(安装证书到$JAVA_HOME/JRE/lib⽬录/ cacerts中)。
1、进入到java 的安装目:cd $JAVA_HOME/jre/lib/security 2、执行导入命令( 命令中 证书文件名:ihuandu,证书路径: /usr/local/ihuandu.crt ; keytool -import -alias 别名 -keystore cacerts -file /usr/local/ihuandu.crt -trustcacerts 3、导入时会提示输入口令,默认口令 changeit 4、提示是否信任此证书? 输入y 5、会提示证书已添加到密钥库中
附:
证书其他操作:
1 查看单个证书(命令中 ihuandu为证书导入时的别名)
keytool -list -keystore cacerts | grep ihuandu
2 查看所有证书
keytool -list -keystore cacerts
3 删除某个证书
keytool -delete -alias ihuandu -keystore cacerts