gpt4 book ai didi

iOS 8.4 CFNetwork SSLHandshake 失败 (-9850)

转载 作者:搜寻专家 更新时间:2023-10-31 22:49:50 25 4
gpt4 key购买 nike

我的 ssl 握手代码失败,因为我将 xcode 更新到 6.4(并将模拟器更新到 ios 8.4)。
错误是:CFNetwork SSLHandshake 失败(-9850)

相同的代码在 ios 8.3 模拟器上成功地执行了 ssl 握手(我也尝试了来自 xcode 6.4 的 ios 8.3 模拟器并且握手很好)。

这是配置和启动握手的代码片段。我正在使用 swift。

self.socket.startTLS([kCFStreamSSLLevel:kCFStreamSocketSecurityLevelTLSv1,
kCFStreamSSLValidatesCertificateChain:kCFBooleanFalse])

我整天都在试图弄清楚这个问题,但我什至无法找出错误代码 -9850 的含义。它没有与 SecureTransport.h 文件中的所有其他代码一起列出。

更新1:

我发现苹果引入了应用程序传输安全性,这意味着您可以声明要建立安全连接的域。无论如何,我尝试使用 ATS 但没有成功。 -9850 错误仍在制造问题。

更新 2 - 解决方案

正如 Michal 和 Steven 在他们的回答中所建议的那样,我开始怀疑主要问题出在服务器端,这最终是真的。
我与实现服务器的人交谈,在他生成长度为 2048 的新 ssl 证书后,所有问题都消失了。在此之前,它们是 512。
有了新证书,我这边的代码工作得很好。

最佳答案

-9850 出现在 iOS 9 SDK 中的 SecureTransport.h header 中:

errSSLWeakPeerEphemeralDHKey = -9850,       /* weak ephemeral dh key  */

听起来 Michal 的方向是正确的。对此问题的更一般搜索使我找到了 http://www.chromium.org/administrators/err_ssl_weak_server_ephemeral_dh_key :

As of Chrome 45, this error message is triggered if the SSL/TLS handshake attempts to use a public key, smaller than 1024 bits, for ephemeral Diffie-Hellman key agreement.

我并不是说 iOS 9 强加了与 Chrome 完全相同的要求,但我会开始查看服务器配置,以及是否可以增加它用于 SSL 握手的 key 大小。

关于iOS 8.4 CFNetwork SSLHandshake 失败 (-9850),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31208371/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com