上线前给 TLS 做一次体检
TLS 配置扫描工具会枚举服务端支持的协议版本、套件、证书链与已知弱点,给出「能连上的最小版本」「有没有用了被淘汰的算法」这类结论。不同工具侧重不同:testssl.sh 覆盖最全面,sslscan 输出紧凑,nmap 脚本适合批量巡检,在线评级服务提供外部视角。上线前与每次变更配置后都应跑一遍。
基本信息
| 适用平台 | Linux 与 macOS 为主;testssl.sh 是单文件脚本依赖少 |
|---|---|
| 权限 | 普通用户即可,扫描本地监听端口时更方便 |
| 输出形式 | 终端彩色报告,多数工具支持 JSON 等机器可读格式 |
| 合法边界 | 扫描自有资产合法,扫描第三方必须先获得书面授权 |
工具侧重
| 工具 | 侧重 | 备注 |
|---|---|---|
| testssl.sh | 协议、套件、证书、漏洞与评级 | 单文件脚本,适合逐项排查 |
| sslscan | 套件与证书细节 | 安装简单,输出紧凑 |
| nmap ssl-enum-ciphers | 批量资产枚举 | 适合巡检与清单核对 |
| SSL Labs | 外部视角评级 | 在线服务,能反映真实客户端体验 |
常用扫描命令
常用扫描命令
nmap --script ssl-enum-ciphers -p 443 example.com # 枚举协议与套件
sslscan example.com:443 | head -40 # 快速看套件与证书
./testssl.sh --fast https://example.com # 单文件脚本,快速模式
./testssl.sh --jsonfile out.json https://example.com # 输出机器可读报告
# 在线评级(外部视角):把域名提交到 SSL Labs 的测试页典型使用场景
- 新站点上线前做基线检查,确认没有残留 TLS 1.0 与弱套件
- 证书更换后验证证书链是否完整、是否缺中间证书
- 批量巡检:用 nmap 脚本扫描资产清单里的全部域名并汇总
- 合规审计:把扫描报告作为加固前后的对比证据留存
扫描结果受客户端库版本影响:不同工具对「安全的套件」定义不同,以目标合规基线(如等保要求或行业规范)为准,不要只看评级字母。
把报告存档再对比:加固前后各留一份扫描结果,评审时能直接看出哪些协议与套件被关闭,比口头说明可信得多。