HttpClient4.2.1忽略https中的SSL证书失效

本文提供了一种解决方案,通过创建一个接受所有域名的证书并将其注册到客户端中,来解决因证书不被信任导致的问题。该方法适用于旧版软件,并提供了一个具体的代码示例。

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

网上大多数解决方法针对的是以前的版本,其中有几个用到的方法已经过时,deprecation。备份。
解决的方法是创建一个能够接受所有域名的证书,然后注册到client里面去。

 1 public class TestClient extends DefaultHttpClient{
 2     TestClient() throws Exception{
 3     super();
 4     SSLContext ctx = SSLContext.getInstance("TLS");
 5     X509TrustManager tm = new X509TrustManager() {
 6         @Override 
 7         public void checkClientTrusted(X509Certificate[]  chain, String authType) throws CertificateException {
 8         }
 9         @Override
10         public void checkServerTrusted(X509Certificate[] chain,  String authType) throws CertificateException {
11         }
12         @Override
13              public X509Certificate[] getAcceptedIssuers() {
14             return null;
15         }
16         };
17     ctx.init(null, new  TrustManager[]{tm}, null);
18     SSLSocketFactory ssf = new SSLSocketFactory(ctx,SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
19              ClientConnectionManager ccm = this.getConnectionManager();
20     SchemeRegistry sr = ccm.getSchemeRegistry();
21     sr.register(new Scheme("https", 443, ssf));
22     }
}

 

转载于:https://www.cnblogs.com/zhanghs/archive/2013/03/03/2942100.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值