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

如何在 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。我想删除这些吗?

答案1

当你有多个 TLS 虚拟主机并使用服务器名称指示 (SNI) 时,允许使用以下语法SSLProtocol 指令为每个 VirtualHost,但除非你有 IP VirtualHosts 在实践中,从指令的第一个出现开始的设置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

答案2

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

无论如何,您都可以使用它,或者简单地使用:

SSLProtocol TLSv1.2

答案3

我也一直在努力解决这个问题,使用指令修改配置SSLProtocol不起作用。我最终将以下内容添加到我的虚拟主机配置中:

SSLOpenSSLConfCmd Protocol "-ALL, TLSv1.2"

效果非常好。您可以阅读有关该SSLOpenSSLConfCmd指令的更多信息这里

答案4

您可以通过这种方式启用 TLS 1.2 和 1.3,并禁用所有弃用的功能。

  SSLProtocol +TLSv1.2 +TLSv1.3
  SSLCipherSuite HIGH:!kRSA:!ADH:!eNULL:!LOW:!EXP:!MD5:!3DES

cdn77.com/tls-test 结果

相关内容