所以我过去几个小时一直在抨击这个问题。
问题是,我有一个iOS应用程序,它加载了一些Web内容。 尝试完成它的工作很好,但是却出现了错误"发生了SSL错误,并且无法与服务器建立安全连接"。
我通过SSLLabs运行了网址,发现我在握手模拟下列出了以下错误:
Apple ATS 9 / iOS 9 "Server sent fatal alert: handshake_failure"
在不了解它的情况下,它似乎与无法为应用程序的WebView提供密码有关,它可以保证 Forward Secrecy 。
Apple ATS 9 / iOS 9
列出了openssl ciphers
的可接受密码。
我将该列表与ECDHE_ECDSA[...]
的输出相匹配,我已提供here
首先,来自openssl列表的密码和来自SSLLabs的密码看起来采用两种不同的格式/命名约定。但除此之外,看起来我不支持任何SSLProtocol -ALL +TLSv1.2
SSLCipherSuite TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384:ECDHE-RSA-AES256-GCM-
SHA384:HIGH:!RC4:!aNULL:!eNULL:!EXPORT:!DES:!3DES:!MD5:!PSK
SSLHonorCipherOrder On
,除非我只是读错了。
由于缺乏更好的事情,我只是搞乱了它,我的主机的SSL配置现在已经包含了这些内容:
SSLCipherSuite
这似乎绝对没有。
当我查看可用的TLSv1.2密码SSLLabs报告时,它对我来说根本没有任何意义。我已将该列表here放入。在我看来,这根本不符合我在input.txt
中定义的内容 - 但是将该列表与ATS支持的密码列表进行比较,似乎很清楚它为什么会这样。侵犯。
我承认,我在这里有点过头了 - 我想了解发生了什么,但老实说,我不知道从哪里开始。
非常感谢你的时间。
答案 0 :(得分:1)
很抱歉迟到的回复。你所有的评论都是正确的方向。
但是,我发现真正的罪魁祸首是dev-libs/openssh
和net-misc/openssl
上的USE标志。由于许可问题,由于缺少默认启用bindist
标记,因此未包含我所寻找的密码。
我已将/etc/portage/packages.use
添加到禁用bindist
的{{1}}。像这样:
dev-libs/openssl -bindist
net-misc/openssh -bindist
然后我重新编译了两个。在重建了两个软件包以及依赖它们的所有内容之后,我所有的ECDHE_ECDSA密码都可以随时使用。