- https单向握手通信异常“PKIX path building
- maven PKIX path building faile
- java 解决ssl异常:PKIX path building
- Maven设置阿里云仓库报证书问题PKIX
- maven PKIX path building failed:
- PKIX path building failed: sun.s
- PKIX path building failed: sun.s
- AndroidStudio maven提示异常PKIX path
- android studio提示sun.security.val
- Maven下载依赖报错,下载https需要证书,报错信息:sun
1. 现象
上周五客户做了换卡操作,然后绑卡确认的时候,银行接口报
javax.net.ssl.SSLHandshakeException:
sun.security.validator.ValidatorException:
PKIX path building failed:
sun.security.provider.certpath.SunCertPathBuilder Exception:
unable to find valid certification path to requested target
然后该步骤一直过不去,因为只有一条换卡的银行绑定信息,所以我们当时直接设置完成处理过去了。
2. 描述
绑卡的过程是https单向握手通信,这里需要服务方认证才可以通信,所以我们机器需要导入相关证书。银行接口使用的是java开发环境,而java的证书库与Windows自带的不共享,这里需要keytool工具导入。
通过与民生技术人员的了解,最近民生监管行的证书有变动,导致现机器使用原有证书认证失败,出现上述的异常。
同样类似的问题也会出现在银联渠道和通联渠道。
3. 解决方法
一般情况下,我们得重新下载证书,然后用keytool工具删除原有的证书,再重新导入证书
以我今天实际处理过程为例,大家可以参考下:
3.1.下载民生证书
IE浏览器下输入https://pay.cmbc.com.cn/epay/fundFileAccess.do 这个地址,看到右边有个证书的认证,点击去会看到“网站标示”页,底部有个“查看证书”,如图:

点击那个“查看证书”,出来一个证书界面,如图:

切换到“详细信息”菜单栏,找到“复制到文件”,如下图:

点击“复制到文件”,出现“证书导出向导”界面,点击“下一步”,如下图:

勾选第一项“DER编码二进制”,继续下一步,如下图:

选择导出的证书路径和名称,这里是pay-cmbc-new.cer,继续下一步,如下图:

点击完成即可
3.2.删除原有的证书
找到java安装目录下的cacerts(JAVA_HOME/jre/lib/security),这是java储存证书的文件。我们可以使用keytool命令查看里面的证书信息:
keytool -list -v -keystore D:/cacerts -storepass 123456

如上图,里面是有民生的证书信息,这里使用keytool删除命令:
keytool -delete -alias pay-cmbc -keystore D:/cacerts -storepass 123456

3.3.导入新证书
我们使用keytool命令导入证书信息:
keytool -import -alias pay-cmbc-new -file D:/pay-cmbc-new.cer -keystore D:/cacerts –storepass 123456
命令行中出现“信任这个认证?”的时候,输入“y”即可,如下图:

命令行出现“认证已添加至keystore中”,认证已经添加,如下图:

添加认证之后,用keytool命令检查一下证书是否有导入。
3.4.重启tomcat或者weblogic中间件
将添加新认证的cacerts认证库文件重新覆盖,然后重启tomcat即可。
同时你可以通过简书查看,记得打赏哦。
网友评论