小编典典

Android上的自签名SSL接受

javascript

如何在Android上的Java中接受自签名证书?

一个代码示例将是完美的。

我在Internet上到处都是,虽然有人声称找到了该解决方案,但它要么不起作用,要么没有示例代码来对其进行备份。


阅读 277

收藏
2020-09-25

共1个答案

小编典典

我在exchangeIt中具有此功能,该功能可通过WebDav连接到Microsoft Exchange。这是一些创建HttpClient的代码,该HttpClient将通过SSL连接到自签名证书:

SchemeRegistry schemeRegistry = new SchemeRegistry();
// http scheme
schemeRegistry.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80));
// https scheme
schemeRegistry.register(new Scheme("https", new EasySSLSocketFactory(), 443));

HttpParams params = new BasicHttpParams();
params.setParameter(ConnManagerPNames.MAX_TOTAL_CONNECTIONS, 30);
params.setParameter(ConnManagerPNames.MAX_CONNECTIONS_PER_ROUTE, new ConnPerRouteBean(30));
params.setParameter(HttpProtocolParams.USE_EXPECT_CONTINUE, false);
HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);

ClientConnectionManager cm = new ThreadSafeClientConnManager(params, schemeRegistry);

EasySSLSocketFactory在这里,EasyX509TrustManager在这里。

对于exchangeIt的代码是开源的,并在托管googlecode上这里,如果您有任何问题。我不再积极从事此工作,但是代码应该可以工作。

请注意,自Android 2.2以来,此过程有所更改,因此请选中此复选框以使上面的代码正常工作。

2020-09-25