有人知道为什么我不能通过更新配置来禁用 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
指令的更多信息这里。