【发布时间】:2016-09-24 07:40:24
【问题描述】:
我正在使用 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) 这意味着“无效的证书链”
在服务器端,我收到的消息是:
错误: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 的连接失败。
任何帮助将不胜感激,谢谢!
【问题讨论】:
-
对照SSLLabs检查您的网站并寻找“不完整链”。如果您发现它修复您的服务器配置。一些桌面浏览器可以解决此类服务器设置问题,而大多数其他 ssl 客户端则不能。
标签: ios iphone cordova ssl websocket