弱 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` 插件检查。
}
推荐配置¶
中级配置(推荐)¶
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 配置使您的服务器面临:
- POODLE 攻击(SSLv3)— 允许解密安全连接
- BEAST 攻击(TLSv1.0)— 允许解密 HTTPS cookie
- Sweet32 攻击(3DES)— 允许从长连接恢复明文
- RC4 偏差 — 允许从加密流恢复明文
- 降级攻击 — 强制使用更弱的协议
测试您的配置¶
使用这些工具验证您的 SSL/TLS 配置:
- SSL Labs 服务器测试
- Mozilla Observatory
openssl s_client -connect yoursite.com:443
参考资料¶
加固 NGINX,使用维护的 RPM
使用 GetPageSpeed 提供的 NGINX Extras 在 RHEL/CentOS/Alma/Rocky 上获取持续更新的 NGINX 与模块。 了解更多.