我正在使用 cordova (5.2.0) 开发应用程序。 在 mac 上,我使用 Xcode 6.4 生成 .ipa
在某些时候,我在 js 中像这样初始化一个安全的 websocket 连接(证书不是自签名的,长度为 2048):
socket_ip = new WebSocket(wss://perform.domain.com:8080, "image-processing-protocol");
该连接适用于 Android 以及桌面浏览器(也适用于 safari)。
但是,从我的 Iphone(8.4) 我得到了一个:
CFNetwork SSLHandshake failed (-9807) which means "Invalid certificate chain"
在服务器端,我收到的消息是:
error:00000005:lib(0):func(0):DH
我的服务器配置是:
- info.ssl_cert_filepath = "sslCertificates/myCert.cer";
- info.ssl_private_key_filepath ="sslCertificates/myCert";
- info.ssl_ca_filepath ="sslCertificates/GlobalSignRootCA.cer"
- info.ssl_cipher_list ="RC4-SHA:AES128-SHA:HIGH:!aNULL:!MD5"
看起来我的问题类似于 openssl-ssl-accept-error-5 .然后我尝试设置一个没有 DH 的密码列表,但我仍然遇到错误。 我可能缺少要在我的 libsocket 服务器上配置的东西。
只要我使用的是商业证书并且它可以与其他设备一起使用,我不明白与 IOS 的连接失败。
非常感谢任何帮助,谢谢!
最佳答案
您是否还必须添加来自 GlobalSignRootCA 的中间证书?
关于ios - SSL 握手仅在 IOS 上失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37458513/