【发布时间】:2015-12-09 06:58:00
【问题描述】:
我为一家公司做了一个应用程序,它支持 API 级别 13+ (3.0+)。它通过 XML 从他们的 CMS 收集数据并将其显示在应用程序上。这是通过 HTTPS 完成的,在他们将服务器升级到 TLS 1.2 之前它运行良好。现在 API 级别 20 以下的 android 版本将无法获取 XML,因为 SSLPeerUnverifiedException 并且很多手机再也看不到这个应用程序了。
有没有办法在启用 TLS 1.2 的同时通过 SSLPeerUnverified?
注意:目前的SSL证书如下:
AddTrust External CA Root
--> COMODO High-Assurance Secure Server CA
--> *.appdomain.com
迄今为止最有帮助的 SOF 文章: Implementing TLS 1.2 on Android 2.3.3
【问题讨论】:
-
不确定,但 --> TLSv1.2 受 api 16+ 支持 -- developer.android.com/reference/javax/net/ssl/SSLSocket.html -- 所以应该有解决这个问题的方法 -- 实际上它在服务器套接字上默认启用对于 api 16+ 但不在客户端上
-
@Tasos 你是对的。我目前正在使用
HttpClient并尝试将它的SocketFactory设置为默认启用 TLS 1.2 的自定义类。它还没有起作用,但它是一个开始。