httpclientandroidlib

时间:2017-08-21 12:04:24

标签: java android ssl https

在开发Android应用程序期间,我遇到了android低于KIT KAT的SSL连接问题。

应用程序正在使用 ch.boye.httpclientandroidlib 进行连接。当我试图获取httpConnection时,我收到错误:

执行http请求时出错。

  javax.net.ssl.SSLPeerUnverifiedException: No peer certificate

在Android中最新的KIT KAT一切正常。

我正在尝试使用here中提取的解决方案,但我在将 ch.boye.httpclientandroidlib 中的类型转换为当前实现中的apache元素时遇到问题。

有没有任何解决方案使用这个库低于KIT KAT?

1 个答案:

答案 0 :(得分:1)

我找到了同一问题的解决方案here ...使用 TlsSniSocketFactory 类(您还必须下载 IgnoreSSLTrustManager 来自同一“util”文件夹的SelfSignedTrustManager 并将其添加到您的项目中。 然后在SchemeRegistry对象上注册新方案,如下所示:

schemeRegistry.register(new Scheme("https", new TlsSniSocketFactory(), port));

我的问题是我的网络服务设置为仅使用TLS 1.2。 运行Android 4.4.4及更低版本的Android设备不会自动启用TLS 1.2,因此您必须手动启用它( 重要 *早于Android 4.1的设备根本不支持TLS 1.2 ,所以这个解决方案不适用于那些旧设备)

迟到的答案,但希望能帮到某人

干杯