cordova - 使用自签名证书通过 HTTPS 进行 CORS 请求的 Phonegap 应用程序

标签 cordova ssl https self-signed

我正在开发 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/

相关文章:

html - 在 phonegap 中的两个 html 页面之间传递数据

javascript - 如何将 webapp 从 cloudflare 传输到 https?

iphone - JMeter 记录使用 HTTPS 的 iOS 原生应用程序导致 SSL 握手问题

javascript - 如何从 HTTPS 服务器请求 HTTP 服务器的 javascript 文件

.htaccess:非 www 到 www(使用 https)在 Firefox 中显示 ssl_error_bad_cert_domain

javascript - 为什么 FileEntry 中的 FormData.append 文件不能正确上传?

javascript - 从设备的 file.uri 为 cordova 项目中的图库图像动态创建低分辨率缩略图

javascript - 使用 parse.com 的 Phonegap 推送通知

ssl - Elasticsearch Shield SSL 证书

java - 使用maven将war文件使用HTTPS部署到tomcat