本文目录导读:

- Web服务器(Apache / Nginx / IIS)
- 反向代理或负载均衡器(如 HAProxy、F5、AWS ELB)
- 操作系统 / 全局配置
- 编程语言或库(如 Java、Python、Go)
- 验证配置是否生效
- 注意事项
Web服务器(Apache / Nginx / IIS)
Apache
编辑 Apache 配置文件(如 httpd.conf 或 ssl.conf),修改 SSLProtocol 指令:
SSLProtocol -ALL +TLSv1.2 +TLSv1.3
(或更严格:SSLProtocol TLSv1.2 TLSv1.3)
重启 Apache:
sudo systemctl restart apache2 # Debian/Ubuntu sudo systemctl restart httpd # CentOS/RHEL
Nginx
在 server 块或 http 块中配置 ssl_protocols:
ssl_protocols TLSv1.2 TLSv1.3;
重启 Nginx:
sudo systemctl restart nginx
IIS (Windows)
- 打开 IIS管理器 → 选择服务器或站点 → 双击 SSL 设置。
- 勾选 需要 SSL,并设置 客户端证书。
- 通过注册表或组策略禁用旧协议(推荐使用 PowerShell):
# 禁用 SSL 2.0/3.0 和 TLS 1.0/1.1 New-Item 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server' -Force Set-ItemProperty 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server' 'Enabled' 0
重启服务器生效。
反向代理或负载均衡器(如 HAProxy、F5、AWS ELB)
- HAProxy:
bind :443 ssl crt /path/to/cert.pem no-sslv3 no-tlsv10 no-tlsv11
- AWS ELB:在监听器设置中选择 TLS 1.2 或更高协议。
- F5 BIG-IP:通过
SSL Profiles禁用旧版本。
操作系统 / 全局配置
Linux (OpenSSL)
编辑 /etc/ssl/openssl.cnf,添加或修改:
[system_default_sect] MinProtocol = TLSv1.2 CipherString = DEFAULT@SECLEVEL=2
(需要重启依赖 OpenSSL 的服务)
Windows
通过组策略或注册表全局禁用旧 TLS 版本(参考 Microsoft 官方文档)。
编程语言或库(如 Java、Python、Go)
- Java (JVM):启动参数添加:
-Dhttps.protocols=TLSv1.2,TLSv1.3
- Python (requests/urllib3):
import ssl, requests ctx = ssl.create_default_context() ctx.minimum_version = ssl.TLSVersion.TLSv1_2 requests.get('https://...', verify=ctx) - Go:默认已禁用旧版本,可显式设置
tls.Config{MinVersion: tls.VersionTLS12}。
验证配置是否生效
使用 在线 SSL 检测工具(如 SSL Labs)或命令行:
openssl s_client -connect yourdomain.com:443 -tls1 # 测试 TLS 1.0 是否被拒绝 openssl s_client -connect yourdomain.com:443 -ssl3 # 测试 SSL 3.0 是否被拒绝
注意事项
- 仅允许 TLS 1.2+ 后,旧客户端(如 IE8/Windows XP)将无法连接,确保你的用户群体已支持新版。
- 某些旧硬件设备可能需要升级固件。
- 建议同时禁用弱加密套件(如 RC4、3DES、CBC 模式等)。
如果需要更详细的指导(如针对特定软件/硬件),请补充你的环境信息。