Pci DSS 合规性规定,到 2016 年 6 月必须禁用 TLSv1.0。我粗略地搜索了一下,发现-TLSv1
apache 配置的 SSLProtocals 部分中的 会处理这个问题(就在 -SSLv3 旁边)。我尝试了以下每一行/etc/apache2/conf_available/https.conf
,但都无济于事。我不明白为什么更改这些协议对我的服务器(Ubuntu 16.04 上的 Apache/2.4.25)没有影响
SSL协议-all-SSLv3-TLSv1+TLSv1.1+TLSv1.2
SSL协议-all+TLSv1.2
SSL协议+TLSv1.1+TLSv1.2
SSL协议-TLSv1+TLSv1.1+TLSv1.2
每次我测试https://www.ssllabs.com/ssltest/index.html,我得到了相同的结果 - TLSv1 从未关闭。我在这里遗漏了什么?TLS 版本是否相互依赖?
对我不起作用的有希望的链接
http://utdream.org/post.cfm/how-to-disable-tlsv1-0-for-pci-compliance-in-apache-2-2
https://ubuntuforums.org/showthread.php?t=2288000
答案1
这只是意味着您正在配置的文件未被加载。
尝试在主配置文件“apache2.conf”中定义SSLProtocol TLSv1.2
或无论如何调用它。
当您使用发行版中的“多文件”配置方案之一时,您需要对幕后发生的事情有很好的控制。而 Apache 并不关心文件,它只关心“上下文”。因此,在服务器配置上下文中定义上述内容,如果您需要确保指令正确加载,请使用“mod_info”。
答案2
我花了很长时间才找到答案。我使用的是 Lets Encrypt,LE 目录中有一个文件,该文件似乎是最后加载的,因为那里的设置会覆盖其他所有内容。
/etc/letsencrypt/options-ssl-apache.conf
如果您正在使用 Lets Encrypt 和 Apache,请特别注意此文件中的内容。