linux报错javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building

  • 首页
  • SSL证书、代码签名证书常见的问题

linux报错javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building

 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