安全扫描:目标使用过期的TLS1.0 版协议问题
在 Nginx 中禁用过期的 TLS 1.0 协议,可以通过配置 ssl_protocols
指令来实现,确保只允许更安全的 TLS 版本。以下是具体步骤:
1. 找到 Nginx 配置文件
需要修改的配置文件通常位于:
- 主配置文件:
/etc/nginx/nginx.conf
- 站点独立配置:
/etc/nginx/conf.d/[站点名称].conf
或/etc/nginx/sites-available/[站点名称]
2. 配置禁用 TLS 1.0
在 HTTPS 对应的 server
块中(通常包含 listen 443 ssl
),找到或添加 ssl_protocols
指令,移除 TLSv1
,仅保留 TLS 1.1 及以上版本(推荐直接保留 TLS 1.2 和 1.3,安全性更高)。
示例配置:
server {listen 443 ssl;server_name yourdomain.com; # 替换为你的域名# SSL 证书配置(替换为实际路径)ssl_certificate /path/to/your/cert.pem;ssl_certificate_key /path/to/your/key.pem;# 禁用 TLS 1.0,仅允许 TLS 1.2 和 TLS 1.3(推荐)ssl_protocols TLSv1.2 TLSv1.3;# 可选:配置安全的加密套件(配合高版本 TLS 使用)ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305';ssl_prefer_server_ciphers on; # 优先使用服务器端指定的加密套件
}
- 关键说明:
ssl_protocols
指令用于指定允许的 TLS 协议版本,删除TLSv1
即表示禁用 TLS 1.0。
3. 验证配置并生效
-
检查配置语法是否正确(避免因错误导致服务异常):
sudo nginx -t
若输出
nginx: configuration file /etc/nginx/nginx.conf test is successful
,表示配置无误。 -
重新加载 Nginx 使配置生效:
sudo nginx -s reload
4. 验证 TLS 1.0 是否已禁用
可以通过以下方式确认:
- 在线工具:使用 SSL Labs SSL Test 检测域名,在“Protocols”部分确认 TLS 1.0 已显示为“Disabled”。
- 命令行验证:使用
openssl
尝试通过 TLS 1.0 连接,若失败则表示已禁用:
禁用成功时,会返回openssl s_client -connect yourdomain.com:443 -tls1
handshake failure
(握手失败)。
注意事项
- 兼容性影响:禁用 TLS 1.0 后,使用旧设备(如 Windows XP、Android 4.3 及以下)的用户可能无法访问网站,需根据业务需求评估。
- 安全建议:现代环境中,建议仅保留
TLSv1.2
和TLSv1.3
,这两个版本安全性更高,且能兼容绝大多数现代设备和浏览器。
通过以上配置,可有效禁用不安全的 TLS 1.0 协议,提升 HTTPS 连接的安全性。