最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
如何用 ssl_protocols 显式指定 TLSv1.2 与 TLSv1.3 以停用高危过时加密协议
时间:2026-07-27 07:44:47 编辑:袖梨 来源:一聚教程网
直接在每个启用 HTTPS 的 server 块中配置 ssl_protocols TLSv1.2 TLSv1.3; 即可精准禁用 SSLv2、SSLv3、TLSv1.0 和 TLSv1.1;该指令仅在 server 块生效,须配合强加密套件、ssl_prefer_server_ciphers on 及实测验证。
直接在 Nginx 的 server 块中写入 ssl_protocols TLSv1.2 TLSv1.3;,就能精准停用 SSLv2、SSLv3、TLSv1.0 和 TLSv1.1 ——Nginx 不会协商未列出的协议版本,客户端若不支持这两个版本,握手直接失败,不存在“降级”余地。
必须放在 server 块内,且每个 HTTPS 站点单独配置
该指令仅在启用 SSL 的 server 块中生效。写在 http 或 location 块里无效,即使 nginx -t 通过,旧协议仍可能被接受。
- 每个监听 443 并开启
ssl的server块都需显式添加这一行 - 多个域名或虚拟主机(如不同 sites-enabled 文件)不能依赖继承,必须逐个配置
- 示例正确位置:
server {<br> listen 443 ssl;<br> server_name example.com;<br> ssl_certificate ...;<br> ssl_certificate_key ...;<br> <strong>ssl_protocols TLSv1.2 TLSv1.3;</strong><br> }
写法必须严格,一个字符都不能错
看似简单的一行,细节决定是否真正生效:
- ✅ 正确:
ssl_protocols TLSv1.2 TLSv1.3;(注意空格、大小写、分号) - ❌ 错误:
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;(含 TLSv1 即等价于 TLSv1.0,触发降级风险) - ❌ 错误:
ssl_protocols TLSv1.2+;(Nginx 不支持通配符语法) - ❌ 错误:
ssl_protocols TLSv1.2 TLSv1.3(漏掉分号,重载失败)
必须配合强加密套件与服务端优先策略
只限制协议不够。TLSv1.2 连接仍可能使用弱 cipher(如含 RC4、SHA1、3DES),导致前向保密缺失或易受攻击。
- 指定高安全套件:例如
ssl_ciphers "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384"; - 禁用所有含 MD5、SHA1、DES、3DES、RC4 的套件
- 启用服务端优先:
ssl_prefer_server_ciphers on;,防止客户端绕过服务器策略选弱算法
验证是否真正生效,不能只靠配置检查
修改后执行 nginx -t && nginx -s reload,再用命令实测:
- 测试 TLSv1.1 是否被拒:
openssl s_client -connect example.com:443 -tls1_1 -servername example.com→ 应返回 handshake failure 或 connection reset - 测试 TLSv1.2 是否可用:
openssl s_client -connect example.com:443 -tls1_2 -servername example.com→ 应成功握手并显示证书信息 - 用
nmap --script ssl-enum-ciphers -p 443 example.com查看输出,确认无 TLSv1.0/TLSv1.1 区块 - 访问 SSL Labs Test(ssllabs.com),检查 “Protocol Support” 是否仅显示 TLS 1.2 和 TLS 1.3
相关文章
- 制作U盘启动程序的简便方法 07-28
- 优盘格式化方法指引 07-28
- 优盘选择指南 07-28
- 如何区分优盘真假 07-28
- Win7优盘图文安装教程 07-28
- 高途课堂改学校方式 07-28