HTTPS 进程可能是健康的,而公共证书却临近过期、为错误的名字签发,或在另一条边缘上被不同地提供。一条有用的检查,是向公共端点索取它会给真实客户端的那张证书。

包含主机名

TLS 虚拟主机依赖服务器名称。把主机名作为 SNI 传入,并检视对端证书:

host=www.example.test
openssl s_client -connect "$host:443" -servername "$host" </dev/null 2>/dev/null \
  | openssl x509 -noout -subject -issuer -dates -fingerprint -sha256

这条命令是只读的。它不会续签任何东西,也不能证明每个中间证书都被每个客户端接受。但它确实给出为该主机名呈现的证书的 not-before、not-after、subject、issuer 与指纹。

在阈值上告警

选择能留出续期失败、DNS 问题与人工响应时间的阈值。确切数字属于服务的恢复目标;并非普通的"30 天"规则就能替代这个决定。配套的TLS 过期检查会打印过期时间,并在剩余区间低于你传入的阈值时以非零退出。

尽可能从主机外部运行检查。本地进程看到的监听器、证书文件或代理路径,可能与公共网络上的访问者不同。

来源