修复方案:禁用 TLS 1.1,强制使用 TLS 1.2 或更高版本
TLS 1.1(RFC 4346, 2006)已过时,存在安全风险(如 BEAST、POODLE 等攻击)。应升级至 TLS 1.2+(推荐 TLS 1.3)。以下是具体修复步骤:
1. 检测当前支持的 TLS 版本
(1)使用 OpenSSL 测试
openssl s_client -connect your-server.com:443 -tls1_1 # 测试 TLS 1.1 是否支持
openssl s_client -connect your-server.com:443 -tls1_2 # 测试 TLS 1.2 是否支持
- 如果 TLS 1.1 连接成功,说明需要禁用。
- 如果报错
no peer certificate available
或unsupported protocol
,说明已禁用。
(2)使用 nmap 检测
nmap --script ssl-enum-ciphers -p 443 your-server.com | grep "TLSv1.1"
如果显示 TLSv1.1: No supported ciphers found
,说明已禁用。
(3)使用 Qualys SSL Labs 在线检测
访问 https://www.ssllabs.com/ssltest/,输入域名查看 Protocol Support 部分,确保 TLS 1.1 被标记为 No。
2. 禁用 TLS 1.1,强制使用 TLS 1.2+
(1)Nginx 配置
修改 nginx.conf
或站点 SSL 配置:
ssl_protocols TLSv1.2 TLSv1.3; # 仅允许 TLS 1.2 和 TLS 1.3
ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305';
ssl_prefer_server_ciphers on;
重启 Nginx:
nginx -t && systemctl restart nginx
(2)Apache 配置
修改 ssl.conf
或虚拟主机配置:
SSLProtocol TLSv1.2 TLSv1.3 # 禁用 TLS 1.0/1.1
SSLCipherSuite ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384
SSLHonorCipherOrder on
重启 Apache:
systemctl restart apache2
(3)Tomcat(server.xml)
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
sslEnabledProtocols="TLSv1.2,TLSv1.3"
ciphers="TLS_AES_256_GCM_SHA384,ECDHE-RSA-AES256-GCM-SHA384" />
重启 Tomcat:
systemctl restart tomcat
(4)Java(JVM 参数)
在启动时禁用 TLS 1.1:
java -Djdk.tls.client.protocols="TLSv1.2,TLSv1.3" -jar your-app.jar
或在 java.security
文件($JAVA_HOME/conf/security/java.security
)中修改:
jdk.tls.disabledAlgorithms=SSLv3, TLSv1, TLSv1.1, DES, 3DES, RC4
(5)IIS(Windows Server)
- 打开 组策略编辑器(
gpedit.msc
)。 - 导航至:
计算机配置 → 管理模板 → 网络 → SSL 配置设置
- 修改 SSL 协议版本,禁用 TLS 1.0/1.1,仅启用 TLS 1.2/1.3。
- 重启服务器生效。
3. 验证修复是否成功
(1)OpenSSL 测试 TLS 1.1 是否被禁用
openssl s_client -connect your-server.com:443 -tls1_1
预期结果:
- 如果返回
no protocols available
或unsupported protocol
,说明 TLS 1.1 已禁用。 - 如果仍然支持,检查配置是否正确并重启服务。
(2)使用 nmap 重新检测
nmap --script ssl-enum-ciphers -p 443 your-server.com | grep "TLSv1.1"
预期结果:TLSv1.1: No supported ciphers found
。
(3)使用 Qualys SSL Labs 测试
确保 TLS 1.1 显示为 No,且 TLS 1.2/1.3 显示为 Yes。
4. 额外加固建议
✅ 优先使用 TLS 1.3(更安全、更高效)
✅ 禁用 CBC 模式密码(改用 AES-GCM 或 CHACHA20)
✅ 启用 HSTS(强制 HTTPS)
✅ 定期更新 OpenSSL/Nginx/Apache
📌 总结
- 检测:使用
openssl
或nmap
检查 TLS 1.1 是否启用。 - 修复:在 Nginx/Apache/Tomcat/Java/IIS 中禁用 TLS 1.1,仅允许 TLS 1.2+。
- 验证:使用
openssl s_client
或 SSL Labs 确认修复成功。
修复后,服务器将仅支持 TLS 1.2/1.3,安全性大幅提升! 🚀