原子网络科技 原子网络科技

HTTPS证书到期前预警与自动续期实操步骤

a169kai 2026年11月03日 · 阅读约 2 分钟

证书过期的时候一般不是一下子就发生的,而是在续期链路的某个环节上悄悄地断开了。短有效期证书普及之后,用日历来提醒已经不够了,要把“预警”和“自动续期”作为两条相互兜底的线。

先进行一次存量盘点。用 openssl x509 -in /etc/letsencrypt/live/域名/fullchain.pem -noout -enddate 来读取到期的时间,再用 certbot certificates 查看每个证书所对应的域名。剩余天数少于14天就要进入观察期,少于7天则应该被当作异常情况来处理。

自动续期本身不复杂。Certbot 安装之后自带 systemd timer,执行 systemctl list-timers | grep certbot 可以确认调度是否存在;没有 timer 的系统可以补一条 cron,比如每天凌晨用非整点时刻运行 certbot renew --quiet。acme.sh 用户查看 crontab 里是否有 acme.sh --cron 即可。容易被忽视的是续期之后重载:证书文件已经更新,但是 Nginx、Apache 仍然使用内存中旧的证书对外服务。在 /etc/letsencrypt/renewal-hooks/deploy/ 目录下放一个脚本,只做两件事,nginx -t 校验配置,通过后 systemctl reload nginx。Apache 对应改成 apachectl graceful。

不能依靠续期任务成功的日志来预警。单独写一个脚本,遍历证书目录,解析 Not After 字段,计算出剩余天数,超过阈值就推送到邮件、钉钉或者企业内部告警通道中。即使防火墙拦截了80端口、DNS挑战失败、定时任务被清除掉之后,在证书真正失效之前仍然有处理的时间。

排错的时候先检查三处:80端口是否对公网开放,.well-known/acme-challenge 路径有没有被强制跳转到HTTPS,DNS-01场景下的API密钥是否仍然有效。调试阶段都要加上 --staging 参数,防止触发签发频率限制。

把定时续期、部署钩子、独立预警这三件事情一起做好,证书的生命周期就可以基本上摆脱人工监控了。

0 0 投票数
文章评分
订阅评论
提醒
guest
0 评论
最旧
最新 最多投票