ACME ARI 协议简化证书续期,短生命周期证书成为主流

2025 年 12 月,Let's Encrypt 宣布把证书生命周期从 90 天缩短到 45 天;2026 年 1 月,6 天短证书和 IP 地址证书正式对全部用户开放。生命周期变短意味着"自动化续期"不再是锦上添花,而是基础设施的生死线。在这个背景下,ACME Renewal Information(ARI,RFC 9773)协议的价值被显著放大——Shopify 用它为数百万商户域名实现了更可靠的证书续期,并在 2026 年 3 月分享了自己的实践。

固定续期阈值的问题

Shopify 原来的做法是固定阈值:在 90 天生命周期的第 60 天(到期前 30 天)触发续期,并叠加 0-72 小时的随机延迟来摊平负载。这套静态逻辑有三个弱点:

  • 无法快速响应吊销:静态逻辑对 CA 的吊销事件毫无感知;
  • 对生命周期变化脆弱:一旦 Let's Encrypt 把证书改成 45 天,写死的 30 天阈值就需要改代码;
  • 负载分布不完美:随机抖动仍可能出现大规模的续期突发。

ARI 如何工作

ARI 为证书续期提供了一个新的标准接口:客户端请求 /renewal-info 端点,CA 返回一个"建议续期窗口",例如:

{
  "suggestedWindow": {
    "start": "2026-02-03T04:00:00Z",
    "end": "2026-02-04T04:00:00Z"
  }
}

客户端在窗口内随机选择一个时间发起续期,并在 new_order 时通过 replaces 字段带上原证书标识——在窗口内续期可以获得更高优先级或绕过速率限制。更关键的是,客户端可以定期轮询 ARI 端点获取更新的时间戳,从而在 CA 遇到吊销等事件时动态调整续期时机,无需硬编码过期阈值。

两种续期方式的差异

把 ARI 与传统的固定阈值放在一起看,差别一目了然:

维度 固定阈值续期 ARI 驱动续期
续期时机 客户端写死"到期前 N 天" CA 下发建议窗口
吊销响应 无感知,只能等下次定时任务 轮询端点,可提前重新签发
生命周期调整 需要改代码、发版本 客户端自动适配
负载协调 随机抖动近似模拟 CA 按全局负载统一调度
速率限制 所有续期请求同权 窗口内请求优先处理

这张表解释了为什么 Shopify 会把"续期时机的决定权"从自己手里交出去:对一个证书规模达到数千万的平台,CA 侧的全局视野远比任何本地估算准确,与其维护一套随时可能过期的自定义逻辑,不如让协议替你兜底。

Certbot 与 acme.sh 的落地配置

对普通站长,切换到 ARI 几乎不需要改代码。Certbot 与 acme.sh 等主流客户端都已内置 ARI 支持,唯一要做的是确保客户端版本足够新,并把续期定时任务调成"高频、防抖":

# /etc/systemd/system/certbot-renew.timer
[Unit]
Description=Run certbot renew twice a day

[Timer]
OnCalendar=*-*-* 00,12:00:00
RandomizedDelaySec=3600
Persistent=true

[Install]
WantedBy=timers.target

一天触发两次,配合 RandomizedDelaySec 打散执行时间,再叠加客户端在 ARI 窗口内部的随机化,即便几十台服务器都指向同一个域名,也不会在同一秒打满 CA 的接口。续期失败时,systemctl status certbot-renew.timer 和对应日志能快速定位问题;建议再挂一个失败通知脚本,把"证书过期"这类事故扼杀在凌晨。

短证书时代的安全收益

证书生命周期从 90 天缩到 45 天,再到可选的 6 天,核心逻辑是:缩短密钥被滥用或被泄露后的暴露窗口。Let's Encrypt 特别说明,续期不计入速率限制,因此 45 天证书不会触发新用户限额;Certbot 等主流 ACME 客户端也已支持 6 天证书与 IP 地址证书的签发。对网站来说,只要续期完全自动化,短证书带来的安全收益几乎零成本。需要提醒的是,6 天证书把"无人值守续期"的容错空间压缩到了极限,告警与重试机制是否可靠,比证书本身更值得你投入精力。

对建站的意义

如果你还在用"到期前固定天数"续期,强烈建议切换到 ARI 驱动的续期逻辑。基础自动化可参考Let's Encrypt SSL 配置Certbot 自动续期,证书类型选择见SSL 证书类型,整体方案参考SSL 证书指南。更多内容请查看安全/SSL分类。

16IDC 观察

短生命周期证书从"激进提议"变成"主流现实",只用了不到两年,背后的关键是续期自动化足够成熟。ARI 把续期时机从客户端"拍脑袋"变成 CA"发指令",既避免了续期风暴,也让证书生态对吊销和生命周期调整保持弹性。对个人站长,最直接的启示是:尽早把证书续期纳入 cron 或 CI 流程并加上失败告警,避免"证书过期导致网站打不开"这类低级事故。工具层面,Certbot 等主流客户端已全面支持新特性,迁移成本几乎为零。

参考:ARI 规范 RFC 9773 https://www.rfc-editor.org/rfc/rfc9773;原文来源:https://letsencrypt.org/2026/03/17/acme-renewal-information-ari