Java中调用https时报peer not authenticated的解决方案

问题

在一个Java系统中,有通过代码调用外部系统的Https功能,外部系统因为换了https证书,导致我们的系统报了

java.io.IOException: Invoke WSHTTP failed, caused by:peer not authenticated

这个错误。

原因

错误的原因是因为此证书不受信任,这就像我们用浏览器访问某个 https网站一样,如果证书不被信任就会报错,但我们可以忽略报错或者手工添加信任。

于是搜索了一些解决方案,居然发现大多数都在想办法不校验证书,个人觉得这是在走一条错误的路。

解决方案

比较靠谱且正式点的方案是将这个证书添加为信任,所幸并不困难,只需执行以下几步:

1. 找到系统的JVM的安装目录

2. 上传要信任的证书到系统所在的机器上

3. 执行命令:sudo keytool -importcert -alias "证书别名" -file /xx/xx/xxxxx.crt -keystore /xx/xx/jre/lib/security/cacerts -storepass changeit

第一处红字,就是随便起个别名,第二处红字是证书所在路径,第三处红字是jvm的目录

4. 执行上述命令的过程中会提示“是否信任此证书”,信任即可

然后就结束了,开心的测试吧~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值