【问题标题】:HTTPS (SSL) connections issue in Codename One代号一中的 HTTPS (SSL) 连接问题
【发布时间】:2017-03-10 02:24:11
【问题描述】:

我现在遇到了 HTTPS/SSL 问题。我正在代号 One 上的 Windows 10 / Java 8 v121 上开发。

当我尝试调用 HTTP(无 SSL)连接时,我被拒绝并引用 [https://www.codenameone.com/blog/ios-http-urls.html]。我认为电话甚至没有打到服务器。我试图在我的代号one_settings.properties 文件中包含“构建提示”,但无济于事。

接下来,我尝试使用 自签名 证书,它生成了“原因:sun.security.provider.certpath.SunCertPathBuilderException:无法找到请求目标的有效证书路径”异常。所以,我认为错误是因为我的证书是自签名的,但它不是......

然后我从 [https://www.sslforfree.com/] 获得了免费证书,它仍然导致 SAME 异常消息。但是,这个证书在我的 Firefox 浏览器上运行良好。我还使用 Simple DNS Plus(适用于 Windows)来测试签名证书域名,以在我的 Firefox 浏览器中正常工作(即正确命中服务器而没有不安全的连接消息)。

我想了解如何:-

  1. 获取适用于 iOS(在 Codename One 模拟器中)的“构建提示”,因此它会调用 http(无 ssl)连接。

  2. 如何解决 Java 异常。

谢谢!

【问题讨论】:

  • 当你打电话给http而不是https时,你得到了什么?
  • 我得到以下输出:“警告:Apple 将不再接受来自您尝试连接到 localhost/accounts/login 的应用程序的 http URL 连接,以了解更多信息,请查看 codenameone.com/blog/ios-http-urls.html
  • 在下面查看我的答案
  • 仅供参考,我自己还没有尝试过,但我听说了关于letsencrypt.org的好消息
  • 我可以推荐letsencrypt.org——在ubuntu下将它用于网络服务器证书已经有一段时间了——证书需要每90天更新一次,但是letsencrypt提供了一种很好的方式来自动完成这项任务。跨度>

标签: java codenameone


【解决方案1】:

只需在开发阶段使用http URL,当您准备发布时,购买正版SSL证书并将http更改为https。这是为了您自己好,因为未加密的 Web 服务调用会使您的应用容易受到 中间人 攻击。

要在开发阶段让您的 http 在 iOS 上工作,请添加以下构建提示:

ios.plistInject=<key>NSAppTransportSecurity</key><dict><key>NSAllowsArbitraryLoads</key><true/></dict><key>CFBundleURLTypes</key><array><dict><key>CFBundleURLName</key><string>com.mycompany.myapp</string></dict><dict><key>CFBundleURLSchemes</key><array><string>MyApp</string></array></dict></array> 

之前有一个类似的问题,我回答了here

【讨论】:

  • 谢谢,伙计! “构建提示”现在正在工作。 (我上次没有改包名和app名)
猜你喜欢
  • 1970-01-01
  • 2013-07-01
  • 2018-08-02
  • 2014-09-13
  • 1970-01-01
  • 2017-11-25
  • 1970-01-01
  • 2013-03-13
  • 1970-01-01
相关资源
最近更新 更多