请在我自己的答案中查看“编辑”部分;他们对此难题作了解释。
我试图为在CentOS 6.5 VPS上运行的Apache 2.2.9服务器禁用RC4,但似乎无法成功。
安装了最近购买的经过业务验证的证书,并且SSL连接运行良好,但是我想尽可能地进行配置,以“加强安全性”(如某些教程所述)。
通过Qualys SSL Labs检查配置,结果页面显示“此服务器接受RC4密码,该密码很弱。等级限制为B。”
但是,我将其放在ssl.conf中:
SSLCipherSuite HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4:!SSLv2:!SSLv3
我已将该问题答案中给出的脚本保存在名为test-ssl-ciphers.sh的文件中,并将IP地址更改为回送地址。这是由于./test-ssl-ciphers.sh | grep -i "RC4"
:
Testing ECDHE-RSA-RC4-SHA...NO (sslv3 alert handshake failure)
Testing ECDHE-ECDSA-RC4-SHA...NO (sslv3 alert handshake failure)
Testing AECDH-RC4-SHA...NO (sslv3 alert handshake failure)
Testing ADH-RC4-MD5...NO (sslv3 alert handshake failure)
Testing ECDH-RSA-RC4-SHA...NO (sslv3 alert handshake failure)
Testing ECDH-ECDSA-RC4-SHA...NO (sslv3 alert handshake failure)
Testing RC4-SHA...NO (sslv3 alert handshake failure)
Testing RC4-MD5...NO (sslv3 alert handshake failure)
Testing RC4-MD5...NO (sslv3 alert handshake failure)
Testing PSK-RC4-SHA...NO (no ciphers available)
Testing KRB5-RC4-SHA...NO (no ciphers available)
Testing KRB5-RC4-MD5...NO (no ciphers available)
Testing EXP-ADH-RC4-MD5...NO (sslv3 alert handshake failure)
Testing EXP-RC4-MD5...NO (sslv3 alert handshake failure)
Testing EXP-RC4-MD5...NO (sslv3 alert handshake failure)
Testing EXP-KRB5-RC4-SHA...NO (no ciphers available)
Testing EXP-KRB5-RC4-MD5...NO (no ciphers available)
这些行中的每一行都包含“ NO”,根据脚本,这意味着服务器不支持指定的密码组合。
而且,该命令grep -i -r "RC4" /etc/httpd
只给我上面提到的ssl.conf文件。
另外,openssl ciphers -V
在我的密码套件上运行时,根本没有显示RC4密码,这在给定配置字符串的情况下是有意义的。
因此,对于SSL检查网站为何告诉我“服务器接受RC4”,我莫名其妙。他们甚至列出了以下被接受的密码:
TLS_RSA_WITH_RC4_128_MD5
TLS_RSA_WITH_RC4_128_SHA
TLS_ECDHE_RSA_WITH_RC4_128_SHA
有人有可能的解释吗?我做错了什么?也许在另一个地方可以配置RC4或“接受”的支持?
谢谢。
[ 编辑 ]在家里的虚拟机中使用CentOS 6.6,我再次使用其域名而不是回送地址针对VPS运行了脚本。此设置意味着密码列表由VM中的openssl实例提供:在产生YES的密码中,我仍然没有RC4。