cordova“release”与SSL的“debug”行为不同

时间:2015-08-15 05:09:25

标签: android cordova ssl release

我对cordova有一个非常困难且完全无法解决的问题。

完全以--debug模式编译的程序在--release模式下编译后停止工作。 我确保源是相同的,效果是恒定的。

--debug版本与--release版本之间的唯一区别是 --release版本无法打开任何SSL连接

此问题本地化非常狭窄,在我的情况下,它是以下行:

Socket = new WebSocket('wss://376.su/');

我的一位朋友报告了相同的错误:

<img src="https://blabla" />;

UPD:问题解决后见答案。

2 个答案:

答案 0 :(得分:5)

Android无法识别该证书的证书颁发机构(CA)。这是一个常见问题,特别是对于旧设备,每次出现新CA时都会影响每个设备。

可能的解决方案是利用信任层次结构

  1. 与您的证书联系授权证书。

    这样您就可以首先发送您的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
    
  2. your_domain_bundle.cert添加到服务器。

  3. 问题已解决httpswss

答案 1 :(得分:1)

我遇到了同样的问题,但主要来源不是代码SystemWebViewClient.java。您的帖子帮助我找到了确切的来源。实际上,主要来源是您尝试访问的https站点缺少Cordova连接到受保护站点所需的证书颁发机构(CA)。实际上,我使用的是基于Ionic / Cordova构建的Siberian CMS。

您可以使用https://www.sslshopper.com/ssl-checker.html#hostname=

检查网站