Apache禁用SSLv3和RC4并启用Forward Secrecy

Apache默认是启用SSLv3和RC4的,但其实SSLv3和RC4都已经不够安全,应当禁用。而启用Forward Secrecy能够增强主流浏览器访问的前向安全性。方法很简单,首先修改网站的配置文件,下面以默认站点配置文件为例。
如果是Apache 2.4,编辑以下文件。

vi /etc/apache2/sites-available/default-ssl.conf

在文件最下方增加以下几行,第一行禁用SSLv3,同时也禁用了RC4等不安全的Cipher,第二行选择优先的Cipher,并为支持的浏览器启用Forward Secrecy,并保持向后兼容,第三行由服务器选择Cipher而不是客户端,第四行关闭SSL压缩,第五行关闭SSL Session Tickets。

SSLProtocol             all -SSLv3
SSLCipherSuite          ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS
SSLHonorCipherOrder     on
SSLCompression          off
SSLSessionTickets       off

如果是Apache 2.2,有些地方有些变化,编辑以下文件。

vi /etc/apache2/sites-available/default-ssl

在文件最下方增加以下几行,第一行禁用SSLv3和SSLv2,同时也禁用了RC4等不安全的Cipher,第二行选择优先的Cipher,并为支持的浏览器启用Forward Secrecy,并保持向后兼容,第三行由服务器选择Cipher而不是客户端。

SSLProtocol             all -SSLv2 -SSLv3
SSLCipherSuite          ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS
SSLHonorCipherOrder     on

重新启动Apache。

service apache2 restart

测试一下吧,应该这样就OK了。
这里选用的是一种较为常用的Cipher Suite,可以根据自己需要做进一步的优化。


评论

发表评论