Certificate for <xx.xxx.xx.xxx> doesn‘t match any of the subject alternative names: [xxxxx]

作者在处理平台数据推送接口时遇到错误,经过研究发现是由于证书问题。他们通过初始化HttpClient时关闭证书校验解决了问题,即信任所有证书并设置NoopHostnameVerifier。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在对接某一平台的时候之前没问题的数据推送接口忽然返回这个错误,研究了一天原理也没搞明白,有说需要兼容HttpPost请求https格式,有说是因为证书不合法,需要jdk导入对方的域名证书。

试了很多方法,终于找到了解决方案。

初始化httpclient的时候忽略一下证书校验就行

 //信任所有证书,关闭主机名校验
  SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(
  SSLContexts.custom().loadTrustMaterial
  (null,new TrustSelfSignedStrategy()).build(),
  NoopHostnameVerifier.INSTANCE);
  // 创建Httpclient对象
  CloseableHttpClient httpclient =         
  HttpClients.custom().setSSLSocketFactory(sslsf).build();
  HttpPost httpPost = new HttpPost(url);

我估计就是对面证书有问题,为了省些扯皮的时间,还是自己兼容一下吧

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值