等保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 回退路径











