我对cordova有一个非常困难且完全无法解决的问题。
完全以--debug
模式编译的程序在--release
模式下编译后停止工作。
我确保源是相同的,效果是恒定的。
--debug
版本与--release
版本之间的唯一区别是 --release
版本无法打开任何SSL连接。
此问题本地化非常狭窄,在我的情况下,它是以下行:
Socket = new WebSocket('wss://376.su/');
我的一位朋友报告了相同的错误:
<img src="https://blabla" />;
UPD:问题解决后见答案。
答案 0 :(得分:5)
Android无法识别该证书的证书颁发机构(CA)。这是一个常见问题,特别是对于旧设备,每次出现新CA时都会影响每个设备。
可能的解决方案是利用信任层次结构:
这样您就可以首先发送您的CA证书,以确保设备信任您的CA 之前您的域名证书。
如果你有分开的证书,这个shell命令可以解决这个问题:
$ cat authority1.cert authority2.cert authority3.cert your_domain.cert >> your_domain_bundle.cert
或者,如果您有一个ca-bundle
文件,这是证书的串联,只需运行:
$ cat authority.ca-bundle your_domain.cert >> your_domain_bundle.cert
your_domain_bundle.cert
添加到服务器。问题已解决https
和wss
。
答案 1 :(得分:1)
我遇到了同样的问题,但主要来源不是代码SystemWebViewClient.java。您的帖子帮助我找到了确切的来源。实际上,主要来源是您尝试访问的https站点缺少Cordova连接到受保护站点所需的证书颁发机构(CA)。实际上,我使用的是基于Ionic / Cordova构建的Siberian CMS。
检查网站