wake-up-neo.com

如何在apache中禁用TLS 1.0和1.1?

有谁知道为什么我不能通过更新配置禁用tls 1.0和tls1.1。

SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1 

完成此操作后,我重新加载Apache,并使用ssllabs或comodo ssl工具进行了ssl扫描,但仍然说支持tls 1.1和1.0。我要删除这些?

40
David

当您有多个TLS虚拟主机并使用服务器名称指示(SNI)时,可以为每个虚拟主机使用 SSLProtocol 伪指令,但是除非您实际上有IP虚拟主机,否则设置从SSLProtocol指令第一次出现起就用于整个服务器和/或支持TLS的all所有基于名称的VirtualHost1

因此,请检查您的主要httpd.conf(以及所有包含的摘录,例如conf.d/*.conf和类似的内容)以获取更多的SSLProtocol指令。

您的语法是正确的,尽管我同意 ezra-s的答案 ,但当您扩展all速记时,您可以在以下方面稍加改进:

 SSLProtocol +SSLv3 +TLSv1 +TLSv1.1 +TLSv1.2 -SSLv2 -SSLv3 -TLSv1 -TLSv1.1 

通过简单地使用:

 SSLProtocol TLSv1.2
54
HBruijn

您指定的足够了,它不应显示任何其他协议。请记住,SSLLABS会缓存最近的测试。尽管知道没有其他协议可以像您那样定义它,但故意使人感到困惑。

在任何情况下,您都可以使用它或简单地:

SSLProtocol TLSv1.2
11
ezra-s

我也在这个问题上挣扎,用SSLProtocol指令修改配置不起作用。我最终在虚拟主机配置中添加了以下内容:

SSLOpenSSLConfCmd Protocol "-ALL, TLSv1.2"

哪个工作完美。您可以阅读有关SSLOpenSSLConfCmd指令 此处 的更多信息。

6
Shultisj

在Apache中禁用TLS1.0版本。

如果您有多个虚拟主机,则必须更新所有配置文件,否则,ssl.conf就足够了。

要检查TSL支持版本:

# nmap --script ssl-enum-ciphers -p 443 192.168.11.10 | grep TLSv
|   TLSv1.0:
|   TLSv1.1:
|   TLSv1.2:

修改Apache配置文件vi /etc/httpd/conf.d/web.conf删除所有TLS,仅允许TLS1.2。

SSLProtocol TLSv1.2

修改后进行验证。

# grep SSLProtocol /etc/httpd/conf.d/web.conf
SSLProtocol TLSv1.2

# nmap --script ssl-enum-ciphers -p 443 192.168.11.10 | grep TLSv
|   TLSv1.2:
# service httpd restart
5
Narendra Kumar

我也面临这个问题。我无法通过在此Vhost中进行配置来仅对一个VHost禁用TLSv1或TLSv1.1。

我们找到了两种解决方案:

1-

由于我们在一个实例中运行了多个IP地址,因此我为每个IP地址禁用了TLSv1和TLSv1.1,因此对于已定义的虚拟主机也是如此。

2-

当我们还配置强密码时,则只有TLSv1.2可用

  SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1

  SSLCipherSuite ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256
  SSLHonorCipherOrder on

Apache 2.4.23,openssl 1.0.2。

也许有人可以验证我的观察结果。

0
JSiegele