两个工具怎么配合
sslscan 擅长快速枚举:支持的协议版本、加密套件、证书概要,适合批量摸底。openssl 的 s_client 擅长细节:完整证书链、握手过程、扩展与校验结果,适合单点取证。评估中通常先用 sslscan 找出薄弱目标,再用 s_client 抓取可直接贴进报告的证书与握手信息。
基本信息
| sslscan | 协议与套件快速枚举,输出为可读文本 |
|---|---|
| s_client | 证书链、握手细节与校验结果 |
| 必带参数 | -servername 指定 SNI,否则取到默认站点证书 |
| 取证内容 | 有效期、主体、签发者、链路校验结果 |
典型使用场景
- HTTPS 服务协议与套件现状摸底
- 弱协议与弱套件的存在性核查
- 证书链完整性取证与到期时间核对
- 多节点与多域名场景下的逐点抽查
- 整改前后对比,验证配置变更是否生效
检查示例
检查示例
sslscan example.com:443 # 协议与套件枚举,快速定位薄弱项
echo | openssl s_client -connect example.com:443 -servername example.com -showcerts 2>/dev/null | openssl x509 -noout -dates -subject -issuer # 证书有效期与主体
echo | openssl s_client -connect example.com:443 -servername example.com 2>&1 | grep -i 'verify return code' # 链校验结果
openssl s_client -connect example.com:443 -servername example.com -tls1_2 </dev/null 2>&1 | head -5 # 指定协议版本探测输出读法与判据
| 输出项 | 含义 | 异常表现 |
|---|---|---|
| 支持的协议 | SSLv3/TLS1.0/1.1 等 | 仍支持已淘汰版本 |
| 加密套件列表 | 协商可用的套件集合 | 含弱套件或空套件 |
| 证书有效期 | 生效与到期时间 | 临近到期或已过期 |
| 主体与 SAN | 覆盖域名范围 | 缺少业务域名 |
| 链校验结果 | 证书链是否可验证 | 非成功即链不完整或自签 |
本地 openssl 版本会影响结论:过旧的客户端可能无法协商新协议,导致把服务端配置误判为不支持;结论以服务端配置与多工具交叉验证为准。
多节点部署的站点要逐点抽查:负载均衡后不同服务器可能加载不同证书或配置,只测一次得到的结果不能代表全部节点。
取证时把命令与输出一并保存,并记录执行时间与来源地址:同一域名在不同时间可能加载不同证书(如证书轮换期间),缺少时间戳的截图在复测与争议处理时说服力有限。