Sta*_*Sky 6 ssl https android handshake sni
我正在开发一个从不同服务器(http和https)检索图像的项目.
我发现这个有用的Q/A以避免No peer certificate errorAndroid 2.3中的问题,但我无法理解为什么在Android 4(> 3)中这个问题(" No peer certificate error")没有呈现.
如果我错了,请纠正我:
这些Android版本有什么区别?为什么我需要相信所有 Android 2.3而不是Android 4?
为什么在Android 2.3中我收到以下例外:"javax.net.ssl.SSLPeerUnverifiedException: No peer certificate error"
在Android 4中一切正常并且连接已建立?
一切都与Android Honeycomb中引入的SNI 服务器名称指示相关吗?
您的认证机构可能未在 Android 2.3.3 版本中列出,但在 4.x 版本中列出。为了确定这一点,请检查两台设备上的密钥库。
从命令行使用 ADB,您可以将 android 的密钥库转储到文件中,并检查该颁发者是否在您的密钥库中可用(可能需要是 root)。adb pull /system/etc/security/cacerts.bks cacerts.bks
下载并安装 Portecle(来自:http ://portecle.sourceforge.net/ )选择 File / Open Keystore... 并选择 cacerts.bks 文件。选择“工具”/“密钥库报告”并将该信息复制到文本编辑器中,以查找从 Web 浏览器找到的证书中指定的 CN。就我而言,我找不到“Cybertrust Public SureServer SV CA”中的一个。
在计算机网络浏览器上使用https://example.website.com/浏览到您感兴趣的网站,并找出 CN 是谁。将其与如上所示的密钥库进行比较。如果它不在密钥库中,您将需要添加它。
注意:Android 4.0 手机有不同的存储证书的方法,并且不使用下面提到的 cacerts.bks 文件。对于他们来说,您应该能够在 Web 浏览器中打开所需的 https 站点并以这种方式添加所需的证书。
我与 Facebook 和 Redbox 的连接有问题。为了解决我的问题并更新我的 android 2.3.3 手机证书,我从 android 3.2 模拟器复制了该证书并将其放在我的手机上:
| 归档时间: |
|
| 查看次数: |
3737 次 |
| 最近记录: |