【问题标题】:wrong version keystore when doing https call进行 https 调用时错误的版本密钥库
【发布时间】:2011-10-19 11:20:33
【问题描述】:
【问题讨论】:
标签:
android
https
version
keystore
【解决方案1】:
您是否使用 Bouncy Castle 格式创建了密钥库?使用 keytool 创建密钥库时,所有这 3 个参数都是必需的(尤其是密钥库类型必须为BKS):
-storetype BKS
-provider org.bouncycastle.jce.provider.BouncyCastleProvider
-providerpath /path/to/bouncycastle.jar
Android 使用 1.46 版本的 bouncycastle,请确保在创建密钥库时使用此版本
1.46版本被发现here
【解决方案2】:
如果有人偶然发现这一点并且@Jcs 的出色答案并没有解决它:我遇到了完全相同的问题,结果证明我没有在我的网络服务器上正确安装 SSL 证书。我在使用digicert's SSL testing tool 时得到了这个想法:我的证书提供者使用了使用中间 CA 签署服务器证书的常见做法。安装证书链(将颁发者的中间 CA 链接到其根 CA)后,一切正常。
【解决方案3】:
一个简单的替代方法是使用Portecle 来生成 BKS:
- 下载Boucycastle Provider 1.46
- 替换 Portecle 安装目录中的 bcprov.jar(例如:
C:\Program Files (x86)\Portecle\bcprov.jar)。必须使用相同的命名。
- 重启 Portecle 并生成您的 BKS 信任库。
备注:对我来说,问题出在 Android 4.0.3 上,并且已解决。
更多解释here.