SSL/TLS 协议安全检测与标准化整改
一、检测目的
核查 HTTPS 站点 TLS 协议启用情况,禁用高危老旧协议(TLS1.0/1.1),规范 TLS1.2、TLS1.3 部署,满足等保、漏洞扫描安全要求。
二、标准化检测方法(Linux openssl 统一命令)
# 依次检测4种协议
echo | openssl s_client -connect 域名/IP:443 -tls1 # TLS1.0
echo | openssl s_client -connect 域名/IP:443 -tls1_1 # TLS1.1
echo | openssl s_client -connect 域名/IP:443 -tls1_2 # TLS1.2
echo | openssl s_client -connect 域名/IP:443 -tls1_3 # TLS1.3
#根据结果判定标准
alert 40 handshake failure:协议已关闭(安全),服务端拒绝该版本握手;
正常输出证书、Cipher 加密套件:协议已开启;
alert 70 protocol version:服务不支持该协议版本。
三、常见故障:Nginx 配置 TLS1.3 但探测失败(alert70)
根因三点(通用排查顺序)
1,底层依赖不达标
Nginx 启用 TLS1.3 硬性条件:Nginx≥1.13.0 + 编译内置 OpenSSL≥1.1.1
核查命令:nginx -V | grep -i openssl
系统 openssl 版本≠Nginx 编译依赖版本,以 nginx -V 为准。
2,配置语法错误
TLS1.3 加密套件不能写入ssl_ciphers,需独立配置ssl_conf_command Ciphersuites。
3,前置设备拦截
域名前端存在 WAF、防火墙、负载均衡、云 LB,前端未开启 TLS1.3,后端 Nginx 配置无效。
验证:直接用后端服务器内网 IP:443 测试,IP 能通 = 前端设备限制。
四、Nginx 标准安全 SSL 配置部分参数(注意1.3的套件写法)
ssl_protocols TLSv1.2 TLSv1.3;
# TLS1.2加密套件
ssl_ciphers ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256;
# TLS1.3专属套件
ssl_conf_command Ciphersuites TLS_AES_256_GCM_SHA384:TLS_AES_128_GCM_SHA256;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
配置生效:
nginx -t
systemctl reload nginx