Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cordova Phonegap应用程序使用自签名证书通过HTTPS请求CORS_Cordova_Ssl_Https_Self Signed - Fatal编程技术网

Cordova Phonegap应用程序使用自签名证书通过HTTPS请求CORS

Cordova Phonegap应用程序使用自签名证书通过HTTPS请求CORS,cordova,ssl,https,self-signed,Cordova,Ssl,Https,Self Signed,我正在开发PhoneGap应用程序,它通过AJAX调用使用web服务。服务正在使用自签名SSL证书在HTTPS上运行。我尝试用不同的方式编辑config.xml,使用cordova插件白名单v1.2.1 访问来源=“*” 及 允许意图href=“http://*/*” 允许意图href=“https://*/*” 允许导航href=“http://*/*” 允许导航href=“https://*/*” 在这里进行了一些挖掘之后,我发现,在PhoneGap应用程序中使用自签名证书可能会导致SSL错

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

访问来源=“*”

允许意图href=“http://*/*”
允许意图href=“https://*/*”
允许导航href=“http://*/*”
允许导航href=“https://*/*”

在这里进行了一些挖掘之后,我发现,在PhoneGap应用程序中使用自签名证书可能会导致SSL错误,该错误在应用程序运行时不会显示,从而导致无法执行AJAX调用(尽管在Android上,令人惊讶的是,一切正常,iOS和WP8/10设备上存在问题)。我在应用程序源代码中读到关于重写“onsserror”过程的内容,这样做使我的应用程序可以工作,但我必须将该应用程序上载到应用商店,这意味着我不能使用此解决方法。另一方面,我正试图规避颁发授权SSL证书的必要性,因为这需要成本。在安装实际应用程序之前,我决定在测试设备上手动安装我的证书。我这样做了,但没有帮助-应用程序仍然没有网络连接,无法使用远程服务。


所以我的问题是,有没有人尝试过在PhoneGap应用程序中使用手动安装的自签名证书,它是否真的有效

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

这对我来说也不适用。您可以使用letsencrypt免费获得您拥有的域的有效证书: