我已经在 Web 服务器中启用了 TLS 1.2。但是http://ssllabs.com表示,我在服务器中启用了 TLS 1.0 和 1.1 版本以及 TLS1.2。我修改了配置文件以从服务器禁用 1.0 和 1.1。但这没有帮助。
/etc/apache2/mods-enabled/ssl.conf
SSLCipherSuite HIGH:!SSLv3:!kRSA:!kECDH:!ADH:!DSS
SSLHonorCipherOrder on
SSLProtocol -all +TLSv1.2
我的 Apache 服务器中有多个虚拟主机。在每个文件中,我都有以下配置。
SSLEngine On
SSLProtocol -all +TLSv1.2
SSLCertificateFile /etc/ssl/certs/certfile.pem
SSLCertificateKeyFile /etc/ssl/private/certfile.pem
答案1
在 /etc/letsencrypt/ 文件夹中查找配置文件。Let's Encrypt 在 sites-enabled/-le-ssl.conf 文件中添加了一个条目:
包括 /etc/letsencrypt/options-ssl-apache.conf
您还需要更新该文件中的 SSLProtocol 和 SSLCipherSuite 指令。
答案2
Letsencrypt 默认会将其写入/etc/letsencrypt/options-ssl-apache.conf
。请检查以确保 包含在您的服务器配置中。
SSLEngine on
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
</VirtualHost>
打开此文件并进行如下编辑。
SSLEngine on
#we comment out whatever Letsencrypt give here
#SSLProtocol all -SSLv2 -SSLv3
#We disabled TLS 1.0/1.1 and SSL 2.0/3.0 here
SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
#Comment out whatever Letsencrypt give by default for SSLCipherSuite
#SSLCipherSuite ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305 .....
#Add this line instead of what Letsencrypt added as SSLCipherSuite
#This is to ensure the use of SSL encryption with a high degree of protection.
SSLCipherSuite HIGH:!aNULL:!MD5:!3DES
SSLHonorCipherOrder on
SSLCompression off
返回SSL 服务器测试并清除缓存。然后重新运行测试
答案3
使用当前的 Ubuntu 18.04 LTS,我们有 Apache 2.4.29,并且问题无法重现。
以下配置可以/etc/apache2/sites-enables/default-ssl.conf
关闭不需要的协议版本:
# Suppress TLSv1.0 and TLS v1.1
SSLProtocol +TLSV1.2 +TLSv1.3
我把它放在靠近文件末尾的位置</VirtualHost>
。
答案4
在您的虚拟主机配置中,编辑此行
SSLProtocol all -SSLv3 -SSLv2 -SSLv2 -TLSv1 -TLSv1.1
请注意,在配置文件中可能包含另一个文件,因此您可以编辑该文件。