TLS 证书链验证器
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/tls-certificate-chain-validator
技能介绍
要解决的问题
证书过期导致的服务中断,往往是运维事故里最无聊的那一类:证书明明签下来了,链却缺了一环;中间证书换了路径,客户端校验直接失败;OCSP 装订没配,每次握手都要多一跳外部查询。等到监控系统报警,用户已经看到了浏览器警告页。这个技能把证书链的验证、OCSP 状态检查、续期提醒和 CT 日志核对这几件事收敛到一个流程里,适合挂在巡检或 CI 任务里周期性跑。
它如何工作
核心基于 OpenSSL 的 x509 校验机制完成证书链验证,输入目标主机和端口后,把服务端返回的叶子证书到根 CA 的完整链交给 OpenSSL 逐级验签,并报告链断裂、签名算法不受信任、有效期过期等问题。
在此基础上,技能会单独检查 OCSP stapling 状态,确认服务端在握手时是否主动附带了吊销状态,而不是让客户端自己去查 OCSP responder。
对于自动化部分,技能集成了 Let's Encrypt ACME 协议,围绕证书到期时间生成续期提醒;同时通过 crt.sh API 查询证书透明度日志,核对域名的实际签发记录是否与预期一致。
适用边界
- 校验结果依赖本机 OpenSSL 的信任库(
cafile/capath配置),换环境跑之前先确认根证书包是否一致,否则容易出现「本地通过、线上报错」的假阴性。 - OCSP stapling 需要服务端主动配置;技能只能告诉你服务端「有没有装订」,不能替你修 nginx 或 envoy 的配置。
- 续期提醒基于 ACME 流程的到期信息,不替代你现有证书管理器的自动化签发逻辑,属于告警侧的补充。
- crt.sh 是外部服务,查询频率过高会被限流,批量扫描时需要控制并发和节奏。
- 技能引用了 RFC 8446 中关于 TLS 1.3 协议行为的资料,如果你在 0-RTT 等特性上踩坑,它提供的只是协议层面的参考,不会改写你的服务端行为。
使用场景
- 新上线 HTTPS 服务时,验证从叶子证书到根 CA 的完整链是否通过 OpenSSL 校验,避免客户端握手失败。
- 排查用户反馈的浏览器安全警告,检查服务端 OCSP stapling 是否开启以及吊销状态是否有效附带。
- 证书到期前自动生成续期提醒,结合 Let's Encrypt ACME 协议确认续签证书的签发与部署状态。
- 安全审计时通过 crt.sh API 查询 CT 日志,核对域名是否存在未授权的证书签发记录。
适合人员
- 负责维护多台 Web 服务器证书生命周期的平台工程师,需要在部署前后快速验证链完整性并接收续期提醒。
- 处理用户 TLS 报错工单的 SRE,需要用 OpenSSL 校验结果定位链断裂或 OCSP 装订缺失的具体环节。
- 负责安全合规的工程师,定期通过 CT 日志核对域名签发记录,发现潜在的未授权证书或证书泄露。
- 使用 Let's Encrypt 签发免费证书的开发团队,需要自动化监控到期时间并触发续期流程。