【问题标题】:Phonegap app with CORS request via HTTPS using self-signed certificate使用自签名证书通过 HTTPS 进行 CORS 请求的 Phonegap 应用程序
【发布时间】:2016-07-25 14:25:27
【问题描述】:

我正在开发 PhoneGap 应用程序,它通过 AJAX 调用使用 Web 服务。服务使用自签名 SSL 证书在 HTTPS 上运行。我尝试以不同方式编辑config.xml,使用cordova-plugin-whitelist v1.2.1

访问原点="*"

allow-intent href="http://*/*"
允许意图 href="https://*/*"
允许导航 href="http://*/*"
允许导航 href="https://*/*"

经过一番挖掘,我发现在PhoneGap应用程序中使用自签名证书可能会导致SSL错误,该错误在应用程序运行时不显示,导致无法执行AJAX调用(虽然在Android上,令人惊讶的是,一切正常,iOS 和 WP8/10 设备上存在问题)。我阅读了有关在应用程序源中覆盖“onSSLError”过程的信息,这样做使我的应用程序正常工作,但我必须将该应用程序上传到商店,这意味着我无法使用此解决方法。另一方面,我试图避免颁发授权 SSL 证书的必要性,因为它需要成本。我决定在安装实际应用程序之前在测试设备上手动安装我的证书。我这样做了,但没有帮助 - 应用程序仍然没有网络连接并且无法使用远程服务。

所以我的问题是,是否有人尝试将手动安装的自签名证书与 PhoneGap 应用程序一起使用,并且它真的有效吗?

【问题讨论】:

标签: cordova ssl https self-signed


【解决方案1】:

经过 24 小时的探索,我终于确信 iPhone 和 WindowsPhone 设备拒绝自签名证书,即使它们是在应用程序安装之前安装的。只有 Android 允许使用未经验证的证书与 HTTPS AJAX 通信。
因此答案是:如果您正在构建 PhoneGap 应用程序并希望通过 AJAX 获得安全的 HTTPS 连接,请使用 CA 证书。

【讨论】:

    猜你喜欢
    • 2013-08-08
    • 1970-01-01
    • 2020-03-22
    • 2021-05-08
    • 1970-01-01
    • 1970-01-01
    • 2014-05-16
    • 1970-01-01
    • 2012-10-15
    相关资源
    最近更新 更多