在开发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?
答案 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 ,所以这个解决方案不适用于那些旧设备)
迟到的答案,但希望能帮到某人
干杯