请问我的H5项目,在Native APP中如何调用https或wss?我运行报错!

也做过了的,最多根证书警告没有了,但依然没有用的~

cocos2d不是浏览器,需要传入根证书用于校验服务器证书的合法性。
浏览器不用设置根证书是因为浏览器自带了根证书。

根证书警告没有了,日志内容有啥变化么?
服务端有没有详细的日志看看为啥关闭了连接?

没有,就提示被关闭了,我们试过了很多方法了,甚至试过升级替换过openssl,貌似也没有用,确实搞不好,

目前,只能绕过他,开了2组服务器,一组基于pc浏览器,走wss,一组基于移动端,走ws。

也可以只用一个服务器,开ws。然后再装一个nginx或者ssl_wrapper或者stunnel配置一下证书做wss代理。ws和wss开在不同端口即可。

1赞

@toddlxt 是的,目前就是这样做的。

但是iOS是不是只能用wss?

@toddlxt 都可以的,ws也行,可以正常使用,苹果只要求了,http必须带s。

服务器,设置证书颁发机构的根证书就可以了~

3赞

我在nginx所在的服务上生成私钥和crt证书,然后在nginx配置443端口监听https请求,再转发到http端口处理。
现在的问题是打包windows版本可以正常使用https,在安卓上会报错 javax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.
请教一下,我应该怎么做?

证书的你需要包含到安卓包里,加载他,设置下ssl,在访问https

这个问题现在你解决了吗?
我遇到一个和你一模一样的问题。

如果解决了请回复下,非常感谢

我的错误和这个帖子一样的错,问题已经解决,跟踪到这个帖子的同学请移步到我的完结贴那里:http://forum.cocos.com/t/websocket-ssl/60024/2

能否提供完整的示例

var ws = new WebSocket(“wss://xxx.com”, protocols, cc.url.raw(“resource/*.pem”));

是否就是这个方法?

然后把证书放到 resource 文件夹 打包就好了?

打包后文件名字被md5 是否没有问题?

1赞

请问是导出那个?叫什么名字?

大佬,你好。我这边也遇到了同样的问题。设置了根证书之后,出现的问题如下:
D/WebSocket.cpp: CA file (/data/user/0/xxx/files/2038c647-595c-402a-ad96-4564ed2beb62.pem) in writable path exists!
NOTICE: Creating Vhost ‘default’ port -1, 1 protocols, IPv6 on
E/WebSocket.cpp: Create lws info: address:192.168.50.204, port:18083
D/WebSocket.cpp: NOTICE: lws_protocol_init
D/TcpOptimizer: TcpOptimizer-ON
D/WebSocket.cpp: WebSocket (0x7c925c9800) Unhandled websocket event: 32
WebSocket (0x7c925c9800) Unhandled websocket event: 29
ERR: ERROR on binding fd 82 to port 0 (-1 13)
WebSocket (0x7c925c9800) Unhandled websocket event: 33
WebSocket (0x7c925c9800) onConnectionError, state: 0 …
WebSocket (0x7c925c9800) onConnectionClosed, state: 2 …
onConnectionClosed, WebSocket (0x7c925c9800) is closing by server.
WebSocket (0x7c925c9800) onConnectionClosed DONE!
WebSocket (0x7c925c9800) onConnectionClosed, state: 3 …
WebSocket (0x7c925c9800) onConnectionError, state: 3 …
D/WebSocket.cpp: closeAsync: WebSocket (0x7c925c9800) is closing…
closeAsync: WebSocket (0x7c925c9800) was closed, no need to close it again!

我查看服务端的日志,发现并未能够在服务端找到任何连接进入的日志,包括握手信息都没有,所以现在不知道怎么解决这个问题

证书是哪里来的

你解决了吗,我和你一样情况

根证书是什么呀