【发布时间】:2011-12-15 05:30:46
【问题描述】:
我正在开发一个需要对服务器进行 HTTPS 调用的 BlackBerry (OS 5) 应用程序。服务器具有自签名证书。我不能只使用可用的 J2ME 类来忽略或抑制 BlackBerry 端的验证错误,因此我想使用 Bouncycastle 的轻量级 TLS 库来实现这一点。
我的代码:
SocketConnection sc = (SocketConnection) Connector.open("https://<myserversite>");
TlsProtocolHandler tlsHandler = new TlsProtocolHandler(sc.openInputStream(),
sc.openOutputStream());
CertificateVerifyer cv = new AlwaysValidVerifyer();
tlsHandler.connect(cv);
DataOutputStream writer = new DataOutputStream(tlsHandler.getOutputStream());
InputStream inputStream = tlsHandler.getInputStream();
我正在使用 Bouncycastle 轻量级 API 1.46 版和 Java 1.6
我遇到了一些问题:
- 尝试连接时抛出异常:“内部 TLS 错误,这可能是攻击”。我已经调试过了,当 Bouncycastle 通过 TlsUtils.checkVersion(InputStream 是,TlsProtocolHandler 处理程序)进行版本检查时,它被抛出了。我已经尝试寻找原因,但无法确定发生了什么。尝试连接到另一个(受信任的)启用 HTTPS 的站点时,我也会遇到同样的异常。
- AlwaysValidVerifyer 已被弃用。 javadoc 声明“在 TlsAuthentication 实现中执行证书验证”,但我找不到任何有关如何执行此操作的示例 - 任何人都可以提供示例吗?
- 我尝试搜索要使用的与 J2ME 兼容的 HTTPS 库,但除了 Bouncycastle 之外找不到任何其他库 - 谁能推荐其他库?
非常感谢任何帮助
会
【问题讨论】:
-
嗨@Will777 你成功了吗?我现在面临同样的问题。可以看看这个问题吗:stackoverflow.com/questions/31318651/…
-
抱歉,发布此问题后不久,我们放弃了黑莓开发,因为黑莓在我国的足迹显着下降
-
您好 @WILL777 我成功地使用自签名证书运行我的 j2me 应用程序,如果您有兴趣只需添加评论。
-
Manee - 发布您的解决方案,以便其他有相同问题的人可以访问它
-
我已经在这里解决了stackoverflow.com/questions/31318651/…。谢谢。
标签: blackberry java-me bouncycastle