
如何用SSLyze深度分析SSL证书完整证书链、OCSP Stapling与四大信任库校验指南【免费下载链接】sslyzeCurrent development of SSLyze now takes place on a separate repository项目地址: https://gitcode.com/gh_mirrors/ssl/sslyzeSSLyze 是一款快速且功能全面的 SSL 扫描工具它通过直接连接目标服务器即可完成SSL 证书深度分析验证完整证书链、检测 OCSP Stapling 支持情况并对照四大信任库Trust Store校验证书可信度。本教程带你用一条命令掌握这些核心能力。一键启动证书分析扫描只需克隆仓库并执行一条命令SSLyze 的证书插件就会自动工作git clone https://gitcode.com/gh_mirrors/ssl/sslyze python sslyze.py --certinfobasic example.com其中basic输出证书关键字段full则打印证书的完整详细信息。核心逻辑位于 plugins/PluginCertInfo.py该插件负责验证服务器证书的有效期与可信性检查 OCSP Stapling 支持打印证书的 SHA1 指纹、颁发者、有效期等关键信息 提示--regular参数会默认包含--certinfobasic适合做综合体检其定义见 utils/CommandLineParser.py。读取完整证书链Certificate Chain 输出解析v0.10 版本起SSLyze 不仅显示叶子证书还会展示服务器返回的完整证书链见 CHANGELOG.md 中 v0.10 更新记录。输出示例Certificate Chain Received: [example.com, DigiCert SHA2 Secure Server CA, DigiCert High Assurance EV Root CA]这个列表按顺序展示叶子证书 → 中间证书 → 根证书。每一级都会提取 Common Name 或组织单位名称逻辑见 _extract_subject_CN_or_OUN。排查技巧如果链中出现No Common Name或层级缺失比如缺少中间证书浏览器通常就会报证书错误——这是最常见的部署问题之一。OCSP Stapling快速检测证书吊销支持OCSP Stapling 让服务器在 TLS 握手中直接附带 CA 的吊销状态响应避免客户端再向 OCSP 服务器发起额外请求。SSLyze 会在握手时启用该扩展并读取响应相关代码如下sslConn.set_tlsext_status_ocsp() # 启用 OCSP Stapling ocspResp sslConn.get_tlsext_status_ocsp_resp()见 _get_cert 方法扫描结果中会出现三个关键信息输出字段含义OCSP Response Status:响应是否成功Validation w/ Mozillas CA Store:响应是否被信任OK / FAILEDCert Status:证书状态如good、revoked如果输出NOT SUPPORTED - Server did not send back an OCSP response说明服务器未开启该功能可在 OCSP 文本格式化逻辑 中查看具体判断流程。四大信任库校验确保所有平台都信任你的证书这是 SSLyze 最有价值的功能之一。它会并行用四个不同的信任库分别建立连接验证证书在各大平台的可信状态见 process_task 方法Mozilla NSS08/2014— 覆盖 Firefox 用户Microsoft08/2014— 覆盖 Windows / Edge 用户AppleOS X 10.9.4— 覆盖 macOS / Safari 用户☕Java 6 Update 65— 覆盖 Java 应用用户四个信任库的根证书文件内置于项目中plugins/data/trust_stores/mozilla.pemplugins/data/trust_stores/microsoft.pemplugins/data/trust_stores/apple.pemplugins/data/trust_stores/java.pem每个信任库还会校验主机名匹配优先匹配 Subject Alternative NameSAN其次匹配 Common Name输出OK - Subject Alternative Name matches或FAILED - Certificate does NOT match见 主机名校验逻辑。⚠️ 只要有一个信任库显示FAILED就意味着部分用户访问会看到安全警告务必排查缺失的中间证书或过期的旧版证书。此外若证书通过 Mozilla 信任库校验且包含 EV 扩展OID 定义在 plugins/data/trust_stores/mozilla_ev_oids.py输出会额外标注, Extended Validation用于识别 EV 证书。进阶技巧XML 输出与批量扫描导出结构化结果使用--xml_out参数可将扫描结果写入 XML 文件方便二次处理。XML 中每个证书都会包含完整的 PEM 内容见 _format_cert_to_xmlpython sslyze.py --certinfofull --xml_out report.xml example.com批量扫描通过--targets_in从文件读取目标列表每行一个host:port项目自带的 test/https_test.txt 和 test/top100.txt 就是现成的示例清单python sslyze.py --certinfobasic --targets_in test/https_test.txt常见问题速查FAQQ扫描显示某个信任库 ERROR 了怎么办连接失败时 SSLyze 会记录具体异常如证书请求、超时。可先用--nb_retries增加重试次数或单独用--certinfofull深入排查。Qcertinfo 的 basic 和 full 有什么区别basic输出 SHA1 指纹、CN、颁发者、序列号、有效期、签名算法、密钥长度、SAN 等摘要字段见 _get_basic_textfull则输出证书的全部原始信息。Q客户端证书双向认证服务器能扫吗可以。即使服务器请求客户端证书SSLyze 也能取回服务器证书继续分析见 异常处理逻辑必要时还可用--cert、--key参数提供客户端证书。总结能力命令/输出价值完整证书链Certificate Chain Received快速定位缺失中间证书OCSP StaplingCertificate - OCSP Stapling评估吊销检查性能与安全性四大信任库校验Certificate - Trust确保跨平台 100% 可信XML 报告--xml_out接入 CI/自动化审计SSLyze 的证书分析将「证书链 吊销状态 多平台信任」三大维度合并在一次扫描中完成是安全运维人员的瑞士军刀。更多功能HSTS、Heartbleed、会话恢复等可运行python sslyze.py -h查看完整选项列表。【免费下载链接】sslyzeCurrent development of SSLyze now takes place on a separate repository项目地址: https://gitcode.com/gh_mirrors/ssl/sslyze创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考