【发布时间】:2012-06-01 13:45:45
【问题描述】:
这几天一直困扰着我。我已经阅读了很多关于整个问题的其他问题,但仍然无法继续。
我创建了一个简单的测试应用程序,只是为了在 Android 上测试 SSL。该应用程序只有一个按钮,当单击该按钮时,应用程序会尝试通过 SSL 加密连接向我的测试服务器发送“Hello World”,然后它会以完全相同的短语进行响应。
首先,我使用 openssl 为我的服务器创建了一个测试密钥和测试证书。然后我一直按照Crazy Bob's blog 中的说明进行操作。我直接从 Bouncy Castle 的网站获得了 Bouncy Castle 提供程序,创建了一个受信任的密钥库,如 Crazy Bob 的博客上所示,我相信那时一切都正确。
当我尝试运行我的代码时,我收到了异常“IOException:密钥库版本错误”。然后我在 StackOverflow 上找到了this question。有人建议我应该尝试使用较旧的 Bouncy Castle Providers 而不是最新的 bcprov-jdk15on-147.jar。我继续考虑这一点,实际上最终尝试了从 jdk13-146 到 jdk16-146 的每个 bcpprovider。仍然每次我得到相同的“IOExcpetion:错误版本的密钥库”。例外。
然后我在 StackOverflow 上找到了 yet another question 关于类似问题的信息。有人设法通过使用 512 位大小的密钥而不是 1024 位大小的密钥来摆脱该异常。好吧,我试了一下,什么也没做,但同样的例外。
所以我现在在这里,想知道下一步该做什么。我的想法和谷歌搜索结果几乎用完了。
我的网络代码是疯狂鲍勃代码的一对一副本,除此之外,应用程序只有处理按钮的活动类。我正在尝试在 API 级别 7 上实现这一点。
任何帮助将不胜感激。谢谢。
【问题讨论】:
-
如果您将目标 API 移动到 10 或 14 之类的东西,它会开始工作吗?在使用较旧的 API 级别时,为了确保它不是兼容性问题,在较新的 API 级别上进行测试并不是一个坏主意。
-
我需要为大脑树的 Android 项目创建“.pem”文件。我安装了 openssl 并运行以下 cmd: openssl> s_client -connect $xxx.xxx.xx:443 2>&1 | \ sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > mycert.pem 但在 s_client 中出现错误。请帮我。我从 Crazy Bob 的博客中得到命令。
标签: java android ssl https android-networking