跳转至

弱 SSL/TLS 配置

Gixy 检查 ID:weak_ssl_tls

概述

weak_ssl_tls 插件检测可能危及加密连接安全性的不安全 SSL/TLS 配置。这包括过时的协议、弱加密套件和客户端驱动的加密选择。

检测内容

1. 不安全的 TLS 协议

检测使用容易受到攻击的已弃用协议:

协议 状态 漏洞
SSLv2 ❌ 不安全 多个严重缺陷
SSLv3 ❌ 不安全 POODLE 攻击
TLSv1.0 ❌ 不安全 BEAST、POODLE、CRIME
TLSv1.1 ❌ 不安全 弱加密,无 AEAD
TLSv1.2 ✅ 安全 配合强加密套件使用
TLSv1.3 ✅ 安全 现代,推荐

2. 弱加密套件

检测应该避免的加密套件:

  • NULL 加密 — 完全无加密
  • EXPORT 加密 — 故意削弱(40-56 位)
  • DES/3DES — 易受 Sweet32 攻击
  • RC4 — 已破解的流加密
  • 匿名加密 (ADH/AECDH) — 无认证
  • 基于 MD5 的加密 — 弱哈希函数

3. 服务器加密偏好

检测 ssl_prefer_server_ciphers 被禁用,允许客户端选择潜在更弱的加密。

示例

❌ 错误:启用了不安全的协议

server {
    listen 443 ssl;
    ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;  # SSLv3、TLSv1、TLSv1.1 不安全
}
问题启用了不安全的协议:SSLv3、TLSv1、TLSv1.1

❌ 错误:弱加密套件

server {
    listen 443 ssl;
    ssl_ciphers ALL:RC4:DES:3DES;  # 包含弱加密
}
问题发现弱加密:RC4、DES、3DES

✅ 正确:安全配置

server {
    listen 443 ssl;

    # 仅现代协议
    ssl_protocols TLSv1.2 TLSv1.3;

    # Mozilla 中级加密套件
    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;

    # 服务器选择加密
    ssl_prefer_server_ciphers on;

    # HSTS 由专用的 `hsts_header` 插件检查。
}

推荐配置

基于 Mozilla SSL 配置生成器

中级配置(推荐)

ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
ssl_prefer_server_ciphers off;

现代配置(仅 TLSv1.3)

ssl_protocols TLSv1.3;
ssl_prefer_server_ciphers off;

为什么这很重要

弱 SSL/TLS 配置使您的服务器面临:

  1. POODLE 攻击(SSLv3)— 允许解密安全连接
  2. BEAST 攻击(TLSv1.0)— 允许解密 HTTPS cookie
  3. Sweet32 攻击(3DES)— 允许从长连接恢复明文
  4. RC4 偏差 — 允许从加密流恢复明文
  5. 降级攻击 — 强制使用更弱的协议

测试您的配置

使用这些工具验证您的 SSL/TLS 配置:

参考资料

加固 NGINX,使用维护的 RPM

使用 GetPageSpeed 提供的 NGINX Extras 在 RHEL/CentOS/Alma/Rocky 上获取持续更新的 NGINX 与模块。 了解更多.