ACME 客户端与自动化

SSL 证书有效期缩短到 47 天:现在该做什么

作者: · 最后核实

公网 TLS 证书最长有效期 2029 年 3 月 15 日起降到 47 天,应对办法是盘点所有证书,把每张证书交给自动续期,去掉手动安装步骤,再用外部监控发现续期失败。适用于所有公网受信任的 TLS 证书,不分 CA,内容截至 2026 年 11 月。

前提条件

需要能看到所有为你的域名处理 TLS 的地方。

  • 你持有的全部注册域名清单。
  • 提供这些域名访问的服务器、负载均衡、CDN、面板和设备的管理权限。
  • 每个域名的 DNS 管理权限(DNS-01 验证和 CAA 记录需要)。

第一步:记住时间节点

公网证书有效期分三步缩短,Let's Encrypt 的默认有效期另有自己的时间表:

日期 变化
2026 年 3 月 15 日 最长有效期 200 天;域名验证复用 200 天
2026 年 5 月 13 日 Let's Encrypt tlsserver 配置文件签发 45 天证书(需主动选择)
2027 年 2 月 10 日 Let's Encrypt 默认(classic)改为 64 天;授权复用 10 天
2027 年 3 月 15 日 最长有效期 100 天;域名验证复用 100 天
2028 年 2 月 16 日 Let's Encrypt 默认改为 45 天;授权复用 7 小时
2029 年 3 月 15 日 最长有效期 47 天;域名验证复用 10 天

完整历史见 证书有效期时间线,有效期计算器 可以算出某个签发日期最长能用到哪天。

第二步:盘点所有证书

证书透明度(CT)日志记录了所有公网证书,包括没人记得的那些。先用 CT 证书查询 搜索每个域名,再检查线上实际返回的证书:

curl ssl.sh/example.com
curl ssl.sh/www.example.com
curl ssl.sh/api.example.com

域名多时用 批量 SSL 检查。每个主机记录:颁发者、到期时间、TLS 在哪里终止、证书是怎么装上去的。

第三步:分类并消灭手动环节

把清单分成三类,重点处理后两类:

  1. ACME 自动化(Certbot、acme.sh、lego、Caddy、Traefik、cert-manager、win-acme、宝塔/1Panel 自动续签):确认至少每天运行并支持 ARI,见 证书自动续期。
  2. 云厂商托管(CDN 免费证书、负载均衡托管证书、海外云的 ACM 等):只要 DNS 验证记录还在就会自动续期。
  3. 手动(在阿里云/腾讯云下载后上传到 CDN、负载均衡、OSS/COS,拷到设备上,或靠提醒续期):换成 ACME 或托管证书;做不到的,在 ACME 部署钩子里调用云厂商 API 自动上传。商业 CA 支持 ACME(EAB)的,让客户端直接对接。

第四步:为更短的域名验证复用期做准备

到 2029 年,CA 只能复用 10 天内的域名验证结果,47 天证书每次续期都要重新验证域名。HTTP-01 只要 80 端口一直可访问就能自动完成;国内 80 端口经常不可用,DNS-01 更可靠:给客户端只限该域名的 API 密钥(阿里云 RAM 子账号、腾讯云子用户),或者把 _acme-challenge 用 CNAME 委派到专门的验证域,避免主域名的密钥放在服务器上。Let's Encrypt 还宣布了用长期记录完成验证的 DNS-PERSIST-01,是否可用以官方文档为准。

验证

流程改好后,测试环境的续期演练能成功完成,线上返回的是自动化流程签发的证书。改完后用 SSL 证书检查 或终端确认线上证书:

curl ssl.sh/example.com

ACME 客户端用测试环境演练(sudo certbot renew --dry-run,acme.sh 加 --staging),不用等到期就能证明流程可行。也可以现在就改用 45 天的 tlsserver 配置文件提前演练 2028 年的情况,见 Let's Encrypt 证书配置文件。

自动续期

每张证书的目标状态都一样:定时任务至少每天运行,客户端按 ARI 或实际有效期的比例续期(不写死天数),钩子重载所有相关服务,外部监控确认结果。Let's Encrypt 2025 年 6 月 4 日起不再发到期提醒邮件,所以要有外部检查:ssl.sh 监控(开发中) 会在到期前提醒,也能发现“续期了但线上没换”的情况。

常见问题排查

  • 脚本默认 90 天:写死的 --days 60、renew_before_expiry = 30 days 或日历提醒,删掉,让客户端自己计算。
  • 大量主机同时续期触发限制:加随机延迟,见 Let's Encrypt 频率限制。
  • 换 CA 后 CAA 拦截:把手动证书迁到 ACME 时同步更新 CAA 记录,见 CAA 记录阻止签发。
  • App 固定了证书:固定站点证书的 App 每次续期都会出错,改为固定自己控制的公钥或 CA,见 证书固定。
  • 被遗忘的主机证书过期:见 NET::ERR_CERT_DATE_INVALID,并把它加入监控。

常见问题

47 天的限制适用于内网或私有证书吗?

不适用。基线要求只约束公网受信任的 TLS 证书,自建私有 CA 签发的证书按你自己的策略来。不过私有证书同样建议缩短有效期并自动化。

我买的是“一年期”证书,现在怎么办?

2026 年 3 月 15 日及以后签发的单张证书最长 200 天。很多 CA 和代理商把一年期改成订阅期内可以多次重新签发,具体以商家说明为准;优先选支持 ACME 的产品,重新签发才能自动化。

阿里云、腾讯云的免费证书受影响吗?

受影响。云厂商签发的证书同样受行业上限约束,而且需要在控制台下载、上传或“部署”,是最容易遗漏的一类。能用云产品自带的托管证书或自动部署功能的尽量用,额度和有效期以控制台为准。见 阿里云 SSL 证书 和 腾讯云 SSL 证书。

资料来源

  1. CA/Browser Forum Ballot SC-081v3
  2. Let's Encrypt: Decreasing Certificate Lifetimes to 45 Days
  3. Let's Encrypt: Profiles
  4. RFC 9773: ACME Renewal Information (ARI) Extension
  5. Let's Encrypt: Ending Support for Expiration Notification Emails