您的认证机构可能不在2.3.3版本的Android中,而是在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 模拟器复制了一个并将其放在我的手机上:
- 创建并启动一个 android 3.2 虚拟设备。
- 从模拟器复制 cacerts.bks 文件(确保您的其他设备未连接)。adb pull /system/etc/security/cacerts.bks cacerts.bks
- 断开模拟器。
- 连接要更新的设备(必须是 root)。您可能需要将 /system 文件夹重新挂载为 rw 以获得读/写功能。有关安装问题,请参阅:此链接
- 从您的设备保存旧证书文件的副本: adb pull /system/etc/security/cacerts.bks cacerts.bks.old
- 将更新的证书文件放在您的设备上 adb push cacerts.bks /system/etc/security/
- 重启设备
- 重新连接并验证新的 cacert 文件是否已加载。