我突然面临使用我的cordova / ionic-v1应用程序使Secure WebSockets正常工作的问题。突然间,我的意思是它在一个月前工作正常。我暂时没有测试此功能,直到用户最近开始发布有关错误的信息。在过去一个月中,将IOS升级到10.2.1,还将Cordova从5.x更新为6。
问题的关键是我的应用正在通过HTTPS使用自签名服务器。这很好用。只是因为WSS不起作用(WS工作正常)。所以它不是全球SSL问题,只是使用WSS。
打开网络套接字时出现的错误:
CFNetwork SSLHandshake failed (-9807)
index.html
中的我的CSP(我知道这是宽容的,我试图让一切工作正常,然后删除多余的东西)
<meta http-equiv="Content-Security-Policy" content="img-src * blob:
android-webview-video-poster: cdvphotolibrary: 'self' data: ws: wss:; default-
src * blob: 'self' gap: wss: ws: data:; style-src 'self' 'unsafe-inline';
script-src 'self' 'unsafe-inline' 'unsafe-eval'; connect-src * http: https: ws: wss:;">
我的config.xml:
<access launch-external="yes" origin="mailto:*" />
<access origin='*' allows-arbitrary-loads-in-media='true' allows-arbitrary-loads-in-web-content='true' allows-local-networking='true' minimum-tls-version='TLSv1.0' requires-forward-secrecy='false' requires-certificate-transparency='false'/>
<allow-navigation href="*" />
Cordova版本:
Cordova 6.5.0
Installed platforms:
android 5.1.1
ios 4.3.1
有人能发现任何问题吗?感谢。
答案 0 :(得分:0)
问题解决了。我不知道为什么,但是对于WSS使用在IOS 10.2上自签名的证书,我必须将自签名证书导入到我的手机并安装它。这很奇怪,因为我不必为同一服务器的HTTP连接(使用相同的证书)这样做。去图。