【问题标题】:PhoneGap Ajax call to HTTPS server with self-signed certificate failsPhoneGap Ajax 调用带有自签名证书的 HTTPS 服务器失败
【发布时间】:2012-02-17 03:11:00
【问题描述】:

我对 phonegap 比较陌生,我最近在我的 windows apache 服务器上使用自签名证书设置了 HTTPS/SSL,并试图发出 HTTPS ajax 发布请求。该请求在浏览器中运行时运行良好,但在 phonegap 中运行时失败。我尝试将 android:debuggable 设置为 false 但这并没有解决问题。我也做了一些研究,看来 phonegap 确实支持 HTTPS ajax 请求,所以我对请求失败的原因感到困惑。

有人知道为什么会这样吗?

【问题讨论】:

  • 我也遇到过这个问题。唯一的问题是您的网络服务是自签名的。如果并且当您获得正确签名的证书时,这将不是问题。现在您可以只使用 HTTP 进行测试。
  • 谢谢!问题是自签名证书,而正确签名的证书不是问题。

标签: ajax post ssl https cordova


【解决方案1】:

这是 Joe Bowser 的一句话,他编写了代码以允许在 PhoneGap Android 上进行自签名证书:

  1. 如果你在做开发:manifest中的android:debuggable="true",你应该允许浏览器向服务器请求数据 使用自签名或错误的 SSL 证书
  2. 如果您要发布应用程序,您应该删除 android:debuggable="true"(Android Market 不会让您发布 无论如何都要这样)并且您将无法使用以下命令将数据发送到服务器 一个错误的 SSL 证书
  3. 如果您没有设置此标志,默认值将是现在的默认值,即您将无法向其发送数据 具有自签名证书的服务器

所以看起来你应该能够通过设置 android:debuggable="true" 来做你想做的事。如果这对您不起作用,我们将需要您提供重现方案、PhoneGap 版本和您使用的 Android 版本。

最好为我们在 Jira 中提出一个错误:

https://issues.apache.org/jira/browse/CB#selectedTab=com.atlassian.jira.plugin.system.project%3Aissues-panel

【讨论】:

【解决方案2】:

我在这个问题上花了几个小时,直到我发现quick and dirty fix 是可能的。它涉及覆盖CordovaWebViewClient 以忽略证书错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-10
    • 2016-07-17
    • 2016-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多