感谢大神的方法,终于搞好了
感谢兄弟 用自己的证书不行 用官方的就好了
12456
如果证书过期更换证书,服务器和客户端需要同时换,只能停服更新吗?有没有更换好的思路
你怎么解决的
官网哪里呀,我怎么没有看到,可以发个链接给我不
正解,太强了
同问,官方有注意到这个问题吗/
感谢大佬,我的也成功了!!!啊啊啊啊啊
这个问题应该在新版本的2.x已经解决
18年的都还能挖

Cocos Creator 2.x 在 Android 平台使用 wss 加密协议握手失败
非入侵引擎式解决方案
客户端
在得到 中间和根证书 .cer 后需要转换为
Base64的 .cer 证书才能使用
转换步骤(Windows 11 系统环境)
- 双击 中间和根证书.cer 文件,进行
Base64的证书导出操作

- 导出后将 cacert.cer 证书放入到 resources/ssl/ 目录下,在 new WebScoket() 时的第
3个参数传入得到的原生路径
try {
if (cc.sys.isNative && cc.sys.os == cc.sys.OS_ANDROID && url.startsWith("wss")) {
let cacert = cc.url.raw('resources/ssl/cacert.cer');
if (cc.loader.md5Pipe) {
cacert = cc.loader.md5Pipe.transformURL(cacert);
}
//@ts-ignore
this._websocket = new WebSocket(url, null, cacert);
} else {
this._websocket = new WebSocket(url);
}
} catch (e) {
this.onError();
this.onClose();
return;
}
服务端
由于服务端使用 JAVA 开发,使用 .jks 的证书
-
需要将 .cer / .pem 文件转换为 .pkcs12 文件后
-
再将 .pkcs12 文件转换为 .jks 文件,供服务端使用
# 生成 .pkcs12
openssl pkcs12 -export -in 中间和根证书.cer -inkey 域名文件.key -certfile ca.cer -out 域名文件.p12 -name 别名 -password pass:密码
# 生成 .jks
keytool -importkeystore -srckeystore 域名文件.p12 -srcstoretype PKCS12 -srcstorepass 密码 -destkeystore 域名文件.jks -deststoretype JKS -deststorepass 密码 -alias 别名
注意事项
-
中间和根证书 .cer 一定是 full.cer,并非 域名.cer
-
如果是 .pem 证书,需将 .pem 的后缀改为 .cer 后再进行
Base64证书转换导出






