17

我正在尝试让运行 Apache 2.2.17 的 Fedora 14 服务器通过 McAfee ScanAlert 的 PCI-DSS 合规性扫描。我第一次尝试使用在 ssl.conf 中设置的默认 SSLCipherSuite 和 SSLProtocol 指令...

SSLProtocol    ALL -SSLv2
SSLCipherSuite ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP

失败,理由是启用了弱密码。使用 ssllabs 和 serversniff 工具进行的扫描显示 40 位和 56 位密钥确实可用。

然后我改成...

SSLProtocol -ALL +SSLv3 +TLSv1

并尝试了在各个站点上报告的所有以下字符串,以通过来自各种供应商的 PCI 扫描...

SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH
SSLCipherSuite ALL:!ADH:!NULL:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:-LOW:+SSLv3:+TLSv1:-SSLv2:+EXP:+eNULL
SSLCipherSuite ALL:!ADH:!NULL:!EXP:!SSLv2:!LOW:RC4+RSA:+HIGH:+MEDIUM
SSLCipherSuite ALL:!aNULL:!ADH:!eNULL:!LOW:!EXP:RC4+RSA:+HIGH:+MEDIUM
SSLCipherSuite ALL:!ADH:!NULL:!EXP:!SSLv2:!LOW:!MEDIUM:RC4+RSA:+HIGH

我在更新后重新启动 apache 并且 apachectl configtest 说我的语法没问题。随后的 ScanAlert 扫描均失败,其他扫描工具继续显示 40 位和 56 位密码可用。我尝试将 SSLProtocol 和 SSLCipherSuite 直接添加到 httpd.conf 中的 VirtualHost,但没有帮助。

实际上感觉某处的某些东西正在覆盖这些设置,但除了 ssl.conf 之外,我在任何地方都找不到设置这些值的任何东西。

如果有人可以提供一个已知良好的 SSLCipherSuite,它已经通过了最近的 PCI 扫描,这将有助于追踪我的问题。

谢谢。

4

6 回答 6

14

随着新漏洞的发现和浏览器的升级,这里的答案可能(将)过时。我建议您依靠Mozilla SSL 配置生成器来检查您应该使用哪种配置。

在此处输入图像描述

2018 年更新:现在强制执行 Perfect Forward Secrecy 是合理的,除非您需要特别支持旧版浏览器。截至 2018 年 11 月,只有“现代”配置文件才能启用完美前向保密。阅读更多关于它的信息:

SSL 实验室:部署前向保密

为前向保密配置 Apache、Nginx 和 OpenSSL

于 2015-02-02T18:30:38.147 回答
8

经过数小时的搜索和拉头发,我发现了我的问题。

我的 ssl.conf 中的默认 SSLProtocol 和 SSLCipherSuite 指令存储在标记为<VirtualHost _default_:443>.

我的实际站点有它自己的容器,上面标有它的 IP 地址,例如:<VirtualHost 64.34.119.12:443>. 更改_default_容器中的值没有影响,但将更强的 SSLProtocol 和 SSLCipherSuite 指令直接添加到站点特定的 VirtualHost 容器最终使它们生效。

仍然不确定为什么调整_default_容器或将它们放在 httpd.conf 中的 VirtualHost 容器中不起作用。

作为对这个问题的明确回答,我使用了...

SSLCipherSuite ALL:!ADH:!NULL:!EXP:!SSLv2:!LOW:!MEDIUM:RC4+RSA:+HIGH

通过我的 ScanAlert 扫描。我敢打赌,上面的大多数其他字符串也会起作用。

于 2011-04-25T17:13:29.940 回答
2

您是否告诉 Apache 强制执行密码顺序?

SSLHonorCipherOrder on

于 2013-09-10T22:10:18.857 回答
2

仅供参考 - 我发现这个设置:

SSLCipherSuite HIGH:!SSLv2:!ADH

生成与此设置完全相同的协议列表:

SSLCipherSuite ALL:!ADH:!NULL:!EXP:!SSLv2:!LOW:!MEDIUM:RC4+RSA:+HIGH

根据:

openssl ciphers -v 'ALL:!ADH:!NULL:!EXP:!SSLv2:!LOW:!MEDIUM:RC4+RSA:+HIGH'
openssl ciphers -v 'HIGH:!SSLv2:!ADH'
于 2013-10-20T14:00:14.157 回答
2

Qualys 推荐以下配置,它在他们的扫描仪上给了我们一个 A

SSLProtocol all -SSLv2 -SSLv3
SSLHonorCipherOrder on
SSLCipherSuite "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 EECDH EDH+aRSA RC4 !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS"

是的,还要确保 Apache 能够读取新配置。我将它直接放在虚拟主机容器中。

从他们的网站:https ://community.quallys.com/blogs/securitylabs/2013/08/05/configuring-apache-nginx-and-openssl-for-forward-secrecy

于 2014-01-15T18:01:13.540 回答
0

看这里Mozilla Wiki

本文档的目标是帮助运营团队在服务器上配置 TLS。

于 2014-10-01T10:03:45.160 回答