最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
Nginx 中 TLS 优化如何满足等保合规要求调整加密套件与协议版本
时间:2026-08-27 11:33:49 编辑:袖梨 来源:一聚教程网
等保2.0三级要求Nginx仅启用TLS 1.2/TLS 1.3,禁用TLS 1.0/1.1及SSLv3;密码套件须全为ECDHE前向保密型,禁用RC4、MD5、SHA1等弱算法;证书链完整、私钥≥2048位(或ECDSA P-256+)、启用HSTS与OCSP装订。
要让 Nginx 的 TLS 配置通过等保2.0(尤其是三级)测评,加密套件与协议版本不是“能用就行”,而是必须严格筛选、显式声明、排除所有已知风险项。核心是淘汰弱算法、强制前向保密、匹配国标与主流浏览器要求。
只启用 TLS 1.2 和 TLS 1.3,彻底禁用旧协议
等保2.0明确要求禁用 TLS 1.0 和 TLS 1.1。Nginx 默认可能兼容旧版本,必须显式覆盖:
- 使用 ssl_protocols TLSv1.2 TLSv1.3; —— 不写 TLSv1.1,不依赖默认值,也不加空格或换行导致语法错误
- 确认 OpenSSL 版本 ≥ 1.1.1w(执行 nginx -V | grep openssl 验证),否则 TLS 1.3 无法启用
- 若需支持极老旧客户端(如 Windows 7 + IE11),可保留 TLSv1.2,但绝不可开启 TLSv1.1 或更低
加密套件必须满足前向保密(PFS)且剔除全部淘汰算法
等保要求密钥交换必须具备前向保密能力,静态 RSA 密钥交换(如 RSA+AES)已被视为高风险,必须排除:
- 只保留以 ECDHE- 开头的套件,确保每次会话生成唯一临时密钥
- 推荐配置(兼顾安全、性能与兼容性):
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384;
- 明确禁用:!aNULL !eNULL !EXPORT !DES !RC4 !MD5 !SHA1 !PSK !SRP !CAMELLIA
- 设置 ssl_prefer_server_ciphers off;,让客户端优先选其最强支持套件,更可控也更符合现代实践
密钥交换曲线与证书强度需达标
等保三级要求非对称密钥具备足够强度,且密钥交换过程抗降级:
- ECC 曲线推荐 secp384r1 或 x25519(OpenSSL 1.1.1+ 支持),避免 secp256r1 在极端场景下的潜在风险
- RSA 私钥不低于 2048 位;更优选择是 ECDSA P-256 或 P-384 证书
- 私钥文件权限必须为 600(chmod 600 /etc/nginx/ssl/privkey.pem),且不能设密码(否则 Nginx 启动失败)
补充关键配套项,缺一不可
仅调协议和套件不够,等保测评会检查整条链路是否闭环:
- 证书链完整:ssl_certificate 必须指向 fullchain.pem(含域名证书 + 所有中间证书),不能只放 cert.pem
-
OCSP Stapling 启用并验证:
ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8 1.1.1.1 valid=300s;
-
HSTS 强制启用:
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
注意:preload 前须确保所有子域均已全站 HTTPS,无 HTTP 回退路径