如何使用Apache 2.4和mod_ssl启用TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384密码

时间:2017-02-17 16:26:20

标签: apache ssl openssl tls1.2

所以我过去几个小时一直在抨击这个问题。

问题是,我有一个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支持的密码列表进行比较,似乎很清楚它为什么会这样。侵犯。

我承认,我在这里有点过头了 - 我想了解发生了什么,但老实说,我不知道从哪里开始。

  1. 我是否安装了正确的密码?
  2. 如果没有,我从哪里得到它们(我目前在openssl 1.0.2k和Apache 2.4.25上)
  3. 如果我确实拥有正确的密码,openssl列表如何与SSLLabs中的列表相对应?
  4. 如何在服务器上启用正确的密码?
  5. 非常感谢你的时间。

1 个答案:

答案 0 :(得分:1)

很抱歉迟到的回复。你所有的评论都是正确的方向。 但是,我发现真正的罪魁祸首是dev-libs/opensshnet-misc/openssl上的USE标志。由于许可问题,由于缺少默认启用bindist标记,因此未包含我所寻找的密码。

我已将/etc/portage/packages.use添加到禁用bindist的{​​{1}}。像这样:

dev-libs/openssl -bindist
net-misc/openssh -bindist

然后我重新编译了两个。在重建了两个软件包以及依赖它们的所有内容之后,我所有的ECDHE_ECDSA密码都可以随时使用。