在使用Windows上的自定义信任库来运行基于JSSE的HttpsURLConnection实现的各种问题后,我遇到了一些我无法得到答案的问题:( Android应用程序仍无效)< / p>
Android 4.0是否仍然只支持密钥库和信任商店(而不是JKS)的BKS格式?我的Windows应用程序使用了JKS。
JSSE或ApacheHttp更适合用于Android平台上的安全TLS通信吗? (我的Windows应用程序使用JSSE HttpsURLConnection和朋友)
在我开始努力获得在Android上运行的自定义信任库之前,我想知道使用JSSE是否正在咆哮错误的树。当然必须有这两个API可用的原因!然后,也许不是。
答案 0 :(得分:1)
Android系统信任库已在ICS中扩展,现在允许您安装可信证书。完成后,它们将被默认TrustManager
选中,HttpClient
和HttpsUrlConnection
都可以正常工作,无需自定义商店。更多细节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