仅在IOS上SSL握手失败

时间:2016-05-26 10:42:20

标签: ios iphone cordova ssl websocket

我正在使用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失败(-9807),这意味着"无效的证书链"

在服务器端,我收到的消息是:

  

错误:00000005:LIB(0):函数(0):DH

我的服务器配置是:

  • info.ssl_cert_filepath = " sslCertificates / myCert.cer&#34 ;;
  • info.ssl_private_key_filepath =" sslCertificates / myCert&#34 ;;
  • 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的联系失败。

非常感谢任何帮助,谢谢!

2 个答案:

答案 0 :(得分:0)

您是否还需要添加GlobalSignRootCA的中间证书?

答案 1 :(得分:0)

我按照Steffen的建议做了检查。 解决方案是在libwebsocket中设置椭圆曲线Diffie Hellman协议。

感谢您的帮助。

相关问题