... error:14082174:SSL routines:SSL3_CHECK_CERT_AND_ALGORITHM:dh key too small
您感兴趣的错误号是 OpenSSL 错误 0x14082174。
The SSL3_CHECK_CERT_AND_ALGORITHM
通常在启用出口级密码时出现。由于僵局,它可能会再次出现在非出口等级谈判中(见下文)。
我假设 DH 密钥太小是主要问题,但我不知道这意味着什么。我在谷歌上搜索了 Diffie-Hellman 密钥交换,并显示了“密钥太小”的消息,但我运气不佳。
这是由于最近僵局攻击从纸上不完美的前向保密:Diffie-Hellman 在实践中如何失败.
您应该使用 2048 位 Diffie-Hellman 组或更大的组。你应该not使用 512 位或 1024 位 Diffie-Hellman 组。
首先要检查的是您的密码列表字符串。它应该类似于:
"HIGH:!aNULL:!MD5:!RC4"
它将避免使用出口级密码,并使用现代密码。但您还需要确保 DH 回调未使用弱/小字段大小。为此,您需要检查服务器配置。
有些人正在“解决”这个问题kRSA
. kRSA
是一把钥匙运输方案,而不是密钥协议方案。 RSA 密钥传输方案不提供前向保密,因此通常不鼓励使用它。事实上,它将从 TLS 1.3 中删除。
我只能说“通常会感到沮丧”因为这取决于受保护的数据。如果您有 SSL/TLS 来保护公开文件的下载,那么可能可以使用。如果您的网站有登录信息,那么使用它可能有点冒险,因为密码是秘密数据(与公开可下载的文件不同)。
为了避免钥匙运输并通过那些Qualys SSL 实验室测试 Web 服务器配置和前向保密,请使用:
"HIGH:!aNULL:!kRSA:!MD5:!RC4"
在您的 Apache 配置文件中,它看起来像这样:
# cat /etc/httpd/conf.d/ssl.conf | grep SSLCipherSuite
# SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5
SSLCipherSuite HIGH:!aNULL:!kRSA:!MD5:!RC4
我好像记得wget
在论文发布之前很长一段时间都拒绝了小团体。它可能会为您的网站提供一个很好的测试用例。
还有一个改进的sslscan,它测试很多东西。这也可能成为一个很好的质量检查工具。