![无法在 Apache 2.4.18 中禁用 TLSv1/TLSv1.1](https://linux22.com/image/1565339/%E6%97%A0%E6%B3%95%E5%9C%A8%20Apache%202.4.18%20%E4%B8%AD%E7%A6%81%E7%94%A8%20TLSv1%2FTLSv1.1.png)
客户要求我在 Web 服务器上禁用 TLSv1 和 TLSv1.1。该服务器正在运行 Apache 2.4.8 和 OpenSSL 1.0.2g。
我已将指令添加到/etc/apache2/mods-enabled/ssl.conf
:
SSLProtocol TLSv1.2
重新启动 Apache2 并在 SSL Labs(以及另外两个工具)上运行测试表明 TLSv1 和 1.1 仍然处于启用状态。根据 Google 搜索,我尝试了很多 SSLProtocol 指令的变体:
SSLProtocol -all +TLSv1.2
SSLProtocol +TLSv1.2 -TLSv1.1 -TLSv1
SSLProtocol +all -TLSv1.1 -TLSv1
它们都不起作用。我也尝试将指令添加到/etc/apache2/apache2.conf
。这也没有什么区别。
我不知道该如何继续。
答案1
客户要求我在 Web 服务器上禁用 TLSv1 和 TLSv1.1。该服务器正在运行 Apache 2.4.8 和 OpenSSL 1.0.2g。
这是适合您描述的配置。
SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
SSLCipherSuite ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256
SSLHonorCipherOrder on
SSLCompression off
SSLSessionTickets off
来源:apache 2.4.18 | 现代配置文件 | OpenSSL 1.0.1g
您可以将密码套件列表缩减为以下内容:
SSLCipherSuite HIGH:!aNULL:!MD5:!RC4
答案2
在 Apache 中,如果您启用了虚拟主机,则这将不会生效。
要解决此问题,请将设置添加到您的虚拟主机文件中,因为这可以针对每个虚拟主机进行控制;
即在 /etc/apache2/sites-enabled/ 下,您可能会找到多个文件,每个文件用于一个网站,您可以在每个文件中进行不同的设置。
对我而言有用的常见设置是:
SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
SSLCipherSuite ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256
SSLHonorCipherOrder on
SSLSessionTickets off