我正在开发PhoneGap应用程序,它通过AJAX调用消耗Web服务。服务使用自签名SSL证书在HTTPS上运行。我尝试使用config.xml
cordova-plugin-whitelist v1.2.1
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应用程序中使用手动安装的自签名证书,并且确实有效吗?
答案 0 :(得分:2)
经过24小时的探索,我终于确信iPhone和WindowsPhone设备拒绝自签名证书,即使它们是在安装应用程序之前安装的。只有Android允许使用未经验证的证书与HTTPS AJAX通信。
答案是:如果您正在构建PhoneGap应用程序并希望通过AJAX保护HTTPS连接,请使用CA证书。