Android安全通信:JSSE还是Apache Http?

时间:2011-12-15 12:43:32

标签: android

在使用Windows上的自定义信任库来运行基于JSSE的HttpsURLConnection实现的各种问题后,我遇到了一些我无法得到答案的问题:( Android应用程序仍无效)< / p>

  1. Android 4.0是否仍然只支持密钥库和信任商店(而不是JKS)的BKS格式?我的Windows应用程序使用了JKS。

  2. JSSE或ApacheHttp更适合用于Android平台上的安全TLS通信吗? (我的Windows应用程序使用JSSE HttpsURLConnection和朋友)

  3. 在我开始努力获得在Android上运行的自定义信任库之前,我想知道使用JSSE是否正在咆哮错误的树。当然必须有这两个API可用的原因!然后,也许不是。

1 个答案:

答案 0 :(得分:1)

Android系统信任库已在ICS中扩展,现在允许您安装可信证书。完成后,它们将被默认TrustManager选中,HttpClientHttpsUrlConnection都可以正常工作,无需自定义商店。更多细节here。 JKS格式是专有的,很可能不受支持。

Apache HttpClient更灵活,具有更具表现力的API,但Android团队表示他们只会从现在开始改进HttpConnection。因此,对于较新的平台,如果您能够使用API​​,那么应该是您的选择。 BTW,在Android上,两者都使用基于本机OpenSSL代码的相同JSSE实现。但是,证书验证是用Java完成的,主要基于BouncyCastle代码。

更新:关于如何使用HttpClient和HttpsURLConnection执行此操作的示例代码:

https://github.com/nelenkov/custom-cert-https

相关博文:

http://nelenkov.blogspot.com/2011/12/using-custom-certificate-trust-store-on.html