证书续期故障往往直到临近到期才被发现。按调度、验证、文件和服务加载四层检查,比重复执行申请命令更容易找出原因。

调度任务是否真的执行

确认 cron 或 systemd timer 的状态、运行账号、PATH 与时间。手工执行成功不代表定时环境相同。保存最近运行记录,并确认失败时有可见日志,而不是输出全部被丢弃。

域名验证入口是否仍然有效

HTTP-01 依赖域名解析和 80 端口验证路径;DNS-01 依赖正确区域、名称和凭据权限。迁移主机、添加 CDN 或全站认证之后,原先可用的验证流程可能失效。

证书文件是否部署到正确位置

签发目录与 Web 服务读取目录可能不同。复制、软链接、容器挂载与权限都要检查。不要把私钥打印到日志;查看到期时间与 SAN 即可判断是否拿到了预期证书。

服务是否读取了新证书

一些服务需要 reload 才会读取新文件。用域名和 SNI 从外部重新握手,确认服务器实际出示的证书。采用续期测试时应阅读工具说明,避免反复正式签发触及服务限额。

操作参考

1
2
3
4
openssl x509 -in fullchain.pem -noout -dates -ext subjectAltName
# 以下路径只是示例
systemctl list-timers --all
curl -I http://example.com/.well-known/acme-challenge/TEST_FILE

示例占位符需替换为自己的环境。涉及生产服务时先保留备份,阅读命令用途后再执行。

参考资料