我正在开发 PhoneGap 应用程序,它通过 AJAX 调用使用 Web 服务。服务使用自签名 SSL 证书在 HTTPS 上运行。我尝试使用 cordova-plugin-whitelist v1.2.1
config.xml
access origin="*"
和
allow-intent href="http://*/*"
allow-intent href="https://*/*"
allow-navigation href="http://*/*"
allow-navigation href="https://*/*"
经过这里的一些挖掘,我发现,在 PhoneGap 应用程序中使用自签名证书可能会导致 SSL 错误,该错误在应用程序运行时不会显示,导致无法执行 AJAX 调用(尽管在 Android 上,令人惊讶的是,一切正常,iOS 和 WP8/10 设备上存在问题)。我在应用程序源中阅读了有关覆盖“onSSLError”过程的信息,这样做使我的应用程序可以正常工作,但我必须将该应用程序上传到商店,这意味着我无法使用此解决方法。另一方面,我试图逃避颁发授权 SSL 证书的必要性,因为它需要成本。我决定在安装实际应用程序之前在测试设备上手动安装我的证书。我这样做了,但没有用 - 应用程序仍然没有网络连接,无法使用远程服务。
所以我的问题是,有没有人尝试过在 PhoneGap 应用程序中使用手动安装的自签名证书并且它真的有效吗?
最佳答案
经过 24 小时的探索,我终于确信,iPhone 和 WindowsPhone 设备会拒绝自签名证书,即使它们是在应用程序安装之前安装的。只有 Android 允许使用未经验证的证书与 HTTPS AJAX 通信。
所以答案是:如果您正在构建 PhoneGap 应用程序并希望通过 AJAX 建立安全的 HTTPS 连接,请使用 CA 证书。
关于cordova - 使用自签名证书通过 HTTPS 进行 CORS 请求的 Phonegap 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38570396/