【问题标题】:Bouncycastle HTTPS, ignoring certificate validation issuesBouncycastle HTTPS,忽略证书验证问题
【发布时间】: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

我遇到了一些问题:

  1. 尝试连接时抛出异常:“内部 TLS 错误,这可能是攻击”。我已经调试过了,当 Bouncycastle 通过 TlsUtils.checkVersion(InputStream 是,TlsProtocolHandler 处理程序)进行版本检查时,它被抛出了。我已经尝试寻找原因,但无法确定发生了什么。尝试连接到另一个(受信任的)启用 HTTPS 的站点时,我也会遇到同样的异常。
  2. AlwaysValidVerifyer 已被弃用。 javadoc 声明“在 TlsAuthentication 实现中执行证书验证”,但我找不到任何有关如何执行此操作的示例 - 任何人都可以提供示例吗?
  3. 我尝试搜索要使用的与 J2ME 兼容的 HTTPS 库,但除了 Bouncycastle 之外找不到任何其他库 - 谁能推荐其他库?

非常感谢任何帮助

【问题讨论】:

  • 嗨@Will777 你成功了吗?我现在面临同样的问题。可以看看这个问题吗:stackoverflow.com/questions/31318651/…
  • 抱歉,发布此问题后不久,我们放弃了黑莓开发,因为黑莓在我国的足迹显着下降
  • 您好 @WILL777 我成功地使用自签名证书运行我的 j2me 应用程序,如果您有兴趣只需添加评论。
  • Manee - 发布您的解决方案,以便其他有相同问题的人可以访问它
  • 我已经在这里解决了stackoverflow.com/questions/31318651/…。谢谢。

标签: blackberry java-me bouncycastle


【解决方案1】:

改变

SocketConnection sc = (SocketConnection) Connector.open("https://<myserversite>");

SocketConnection sc = (SocketConnection) Connector.open("socket://<myserversite>:443");

【讨论】:

  • user1647750:这篇文章和这个问题有什么关系?我的问题是关于在 BlackBerry 平台上接受自签名证书。
  • 它将摆脱您的第一个问题。你在做 SSL 认证 pinning 相关的工作吗?
  • 我指的第一个问题是证书验证问题,因为 CA 是自签名的并且不在设备信任库中。你的建议将如何解决这个问题?关于固定 - 我使用自己的开发用 CA 进行自签名证书 - 仅此而已
猜你喜欢
  • 1970-01-01
  • 2011-11-16
  • 1970-01-01
  • 2020-08-22
  • 1970-01-01
  • 2013-10-16
  • 2013-08-06
  • 1970-01-01
  • 2011-10-18
相关资源
最近更新 更多