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


31

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

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

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

Answers:


45

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

因此,请检查您的主要代码httpd.conf(以及所有包含的代码段,例如conf.d/*.conf和类似的包含代码段),以查看该SSLProtocol指令的更多情况。

您的语法是正确的,尽管我同意ezra-s的回答,即当您扩展all速记时,您可以略微改善以下内容:

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

通过简单地使用:

 SSLProtocol TLSv1.2

这一切都很有意义,但是我做了您的建议。我将/ etc / httpd目录中的“ SSLProtocol”的所有引用复制了。然后,我将其更新为SSLProtocol TLSv1.2,然后重新启动,它仍然显示支持tls 1.0和1.1。我还在另一台服务器上尝试了此操作,并且出现了同样的问题。有任何想法吗?
戴维(David)

1
错误的警报,这确实是由comodo和ssllabs报告缓存的。现在看来报告正确。谢谢。
戴维(David)

3
我想建议您对不需要的协议使用减号“ all”。随着新标准的开发和旧标准的不安全,apache的未来版本对“全部”的定义有所不同。
bobpaul

如果您使用的是Letsencrypt,请不要忘记检查/etc/letsencrypt/options-ssl-apache.conf
Memes

9

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

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

SSLProtocol TLSv1.2

如果指定,有什么区别-ALL +TLSv1.2吗?
Chazy Chaz

“全部”扩展为“ + SSLv3 + TLSv1 + TLSv1.1 + TLSv1.2”。我看不到使用“ -All”的好处。实际上,从文档中还不清楚“ -all”是否是有效的语法。你可以做[+/-]协议,但是一切都不是协议:httpd.apache.org/docs/2.4/mod/mod_ssl.html
bobpaul

6

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

SSLOpenSSLConfCmd Protocol "-ALL, TLSv1.2"

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


4

在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

-1

您需要使用以下命令重新启动Apache服务以反映更改。

sudo service apache2 restart

下面的代码对我来说很好用,您可以查看这篇文章以获取更多详细信息, https://karthikekblog.com/how-to-disable-enable-ssl-tls-protocols-in-ubentu-apache-linux-server/

<VirtualHost *:443>
ServerName www.yourdomain.com
DocumentRoot /var/www/html
SSLEngine on
SSLProtocol +TLSv1.2
SSLCertificateFile /etc/apache2/certificates/certificate.crt
SSLCertificateKeyFile /etc/apache2/certificates/certificate.key 
SSLCertificateChainFile /etc/apache2/certificates/intermediate.crt
</VirtualHost>

这不会禁用任何内容。它将仅启用TLSv1.2。重启的方式因发行版本而异,甚至同一发行版本之间也是如此。
杰拉尔德·施耐德
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.