首页/安全/加密与证书速查/testssl.sh 批量检测与结果解读
TLS 与 HTTPS60 条

testssl.sh 批量检测与结果解读

开源脚本对目标做协议、套件、证书与常见缺陷条目的扫描,按 OK/INFO/WARN/CRITICAL 分级输出,适合上线前基线与变更后复查。

加密与证书速查安全更新于 2026-10-13

testssl.sh 是干什么的

testssl.sh 是一个开源检测脚本,对目标做协议版本、套件强度、证书链与有效期,以及常见缺陷条目的扫描,并按 OK、INFO、WARN、CRITICAL 分级输出。它适合在上线前建立基线、在配置变更后做复查。使用时有两条纪律:只扫描自有或已获授权的资产;异常项要在不同链路上复测后再下结论。

基本信息

运行方式本地需要 bash 与 openssl,克隆仓库后直接执行
常用参数--fast 快速模式、--severity 过滤级别、--jsonfile 或 --csvfile 导出
检测内容协议版本、套件强度、证书链与有效期、HSTS、OCSP 装订等
配合使用与浏览器和命令行直连结果互相印证
授权前提只扫描自有或已获授权的资产
频次控制高频扫描可能触发 WAF 或 IPS 拦截

典型使用场景

  • 上线前基线:记录初始状态,作为后续对比的依据
  • 变更后复查:确认套件或协议调整确实生效
  • 批量资产巡检:按域名清单逐个扫描并汇总报告
  • 整改验收:把严重项清零后再次扫描确认
  • 配置对标:了解同类站点的配置水平(注意授权边界)

运行与导出报告

运行与导出报告
git clone --depth 1 https://github.com/drwetter/testssl.sh.git
cd testssl.sh && ./testssl.sh --fast example.com
# 导出结构化报告,便于归档与前后比对
./testssl.sh --quiet --jsonfile report.json example.com
# 只看严重级别较高的条目,减少噪音
./testssl.sh --severity HIGH example.com

分级读法

级别含义处置
OK符合预期归档留底
INFO信息性提示按业务判断是否需要动作
WARN潜在风险或最佳实践缺失结合威胁模型排优先级
CRITICAL明确的安全缺陷优先整改并复测
对外部目标扫描前需获得授权,仅对自有或已授权资产执行;高频扫描可能触发 WAF 或 IPS 拦截导致结果失真。
扫描结论要交叉验证:同一目标在浏览器、命令行与检测脚本下的结果可能不同,出现分歧时用最简单的命令行复现来判断谁更接近事实。
把报告归档或纳入版本管理:只有留下基线,才能判断某次变更是改好了还是改坏了。

易错点

  • 把 WARN 一律当成漏洞处理,应结合业务与威胁模型判断优先级
  • 扫描结果受出口网络影响,异常项建议在不同链路上复测后再下结论
  • 未获授权就扫描外部目标,既有合规风险也可能触发对方防护
  • 只跑一次就当作结论,忽略配置变更与证书轮换带来的状态变化
  • 忽略扫描出口的解析差异,拿到的证书可能不是预期的那个

数据来源与参考

  • testssl.sh 项目文档(GitHub)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌