Skip to content

acme renew —— 续期证书 ​

对本地已签发的 ACME 证书发起续期,沿用证书配置中的账户、验证方式与部署脚本。证书配置中开启 renew.auto_cert 后,cron 命令会在定时扫描中自动续期进入窗口的证书。

  • 续期判定:按以下顺序判定,命中即续期:
    1. -f 强制:忽略续期窗口,直接续期
    2. 证书已过期:立即续期
    3. renew.days_before 大于 0:剩余天数达到该提前量时续期,不请求 ARI;提前量超过证书总有效期时,按第 5 项的比例判据兜底
    4. renew.days_before 等于 0(默认)且 CA 给出 ARI 建议窗口:进入建议窗口即续期;CA 未给出建议窗口时,按第 5 项判定
    5. 剩余有效期比例(兜底判据):剩余有效期不足总有效期的 1/3 时续期
  • 私钥策略:每次续期生成新私钥,新证书下载完成后替换现役私钥。

续期窗口:优先使用 ARI

ARI(Automated Renewal Information,自动续期信息,RFC 9773) 是 CA 通过 ACME 协议发布建议续期窗口的机制,客户端按 CA 建议的时间续期,可平滑 CA 侧的签发负载并及时响应 CA 的调度调整。

保持 renew.days_before 为默认值 0 即使用 ARI,推荐优先使用该方式;需要固定提前天数时,再将 renew.days_before 设置为大于 0 的值,此时不再请求 ARI。

用法 ​

bash
certiman acme renew [flags]

参数 ​

flag短名类型默认说明
--domain-d[]string选择器:待续期证书的主域名(仅限一个)
--conf-cstring选择器:证书配置文件路径
--allboolfalse续期全部纳入自动续期(renew.auto_cert=true)的证书,与选择器互斥
--dcv-hookstringDNS 验证 hook 脚本路径,覆盖证书配置中的验证脚本
--deploy-hookstring部署 hook 脚本路径,覆盖证书配置中的部署脚本
--reloadcmdstring--deploy-hook 的同义参数,执行 shell 命令
--renew.days-beforeint0提前续期天数;大于 0 时按剩余天数判定,不请求 ARI;等于 0(默认)时按 ARI 建议窗口判定
--wait-timeoutstring5mACME 账户初始化、DNS 传播与 ACME 轮询的累计等待上限(Duration)

示例 ​

bash
# 续期单张证书(未到窗口时幂等跳过)
certiman acme renew -d example.com

# 忽略续期窗口强制续期
certiman acme renew -d example.com -f

# 批量续期所有纳入自动续期的证书
certiman acme renew --all

# 手动指定证书配置文件
certiman acme renew -c /etc/certiman/shop-cert.yaml

输出 ​

0已续期(示例)
text
✔ 证书已续期:example.com
0未进入续期窗口(示例)
text
» example.com · 未进入续期窗口 · 剩余 89 天
i 如需强制续期,运行 `certiman acme renew -d example.com -f`

续期完成后同样输出 ✔ 证书已续期:<主域名> 等提示;-o json 输出与 acme issue 相同的结构化结果,配置了部署脚本时执行部署。

相关命令 ​