状态:日常主力 · 适合 Nginx 源站证书自动化签发与定时续期
速读#
HTTPS 证书管理最怕两件事:一是人工记到期时间结果忘了导致证书过期全站红标;二是配置了自动续期但到期那天默默失败。
Certbot 的价值在于把 ACME 协议与 Nginx 深度结合。90 天有效期不是缺陷,而是强迫运维建立自动化通道的设计。
最短上手与演练纪律#
# 1. 安装 certbot 与 nginx 插件apt install certbot python3-certbot-nginx -y
# 2. 自动修改 Nginx 配置并签发证书certbot --nginx -d app.example.com
# 3. 核心纪律:走完流程立刻验证 dry-run 通道certbot renew --dry-runrenew --dry-run 验通,你才能信到期那天定时任务会真的成功。它走的是 Let’s Encrypt 的 staging 环境,不消耗正式签发额度。
核对定时任务#
装完后必须确认定时器挂载正常:
systemctl list-timers | grep certbotDebian 系会自动注册 certbot.timer,一天检查两次到期状态。「应该有个定时任务」和「我看到了那个定时任务」是两回事——核对过才算数。
管辖边界与退场条件#
- 现在管辖:Cloudflare 回源到我源站服务器这一段,以及未套 CDN 的直连子域。
- 退场条件:整站交给 Cloudflare Full (strict) 且仅使用 15 年 Origin CA 证书时,Certbot 才从那个站点退场。
不适合什么情况#
- 需要泛域名证书:
*.example.com只能走 DNS-01 验证,若 DNS 服务商小众,acme.sh 的 API 覆盖面更广。 - 使用 Caddy / Traefik:现代 Web 服务器已内置 ACME 自动申请,无需外部独立 Certbot 进程。
set-and-forget 的系统,必须有一套定期验证通道仍然通畅的纪律。dry-run 演练的对象不是工具,而是整条链路。
