Skip to content

acme revoke —— 吊销证书 ​

通过 ACME 协议向 CA 请求吊销证书,支持两类目标:

  • 托管证书:吊销本机 ~/.certiman/acme/certs/ 中的证书,通过 -d / -c 指定;吊销请求默认使用 ACME 账户私钥签名,--with-cert-key 改用证书私钥签名,适用于账户不可用或 CA 要求证明私钥持有的场景
  • 外部证书:吊销不由 CertiMan 托管的证书,通过 --cert-file + --private-key + --server 指定;吊销请求使用证书私钥签名,不需要 ACME 账户,也不会更新本机托管证书的状态

吊销是不可逆操作。TTY 环境下需要交互确认,非交互环境必须提供 -f,否则拒绝执行。

用法 ​

bash
certiman acme revoke [flags]

参数 ​

托管证书(-d / -c)与外部证书(--cert-file 等)两种方式互斥:

flag短名类型默认说明
--domain-d[]string选择器:按主域名指定托管证书
--conf-cstring选择器:证书配置文件路径
--cert-filestring外部证书的叶证书文件路径;需与 --private-key、--server 同时提供
--private-keystring外部证书的私钥文件路径;必须与证书匹配,支持 RSA 与 ECDSA P-256 / P-384
--serverstring外部证书所属 CA 的 ACME Directory URL,取值为完整 HTTP(S) 地址
--reasonstring0吊销原因,取值为 RFC 5280 原因码或标准名称:unspecified(0) / keyCompromise(1) / cACompromise(2) / affiliationChanged(3) / superseded(4) / cessationOfOperation(5) / certificateHold(6) / removeFromCRL(8) / privilegeWithdrawn(9) / aACompromise(10)
--with-cert-keyboolfalse托管证书吊销使用证书私钥签名;原因为 keyCompromise(1) 时建议使用。外部证书吊销始终使用证书私钥签名,无需指定本项

示例 ​

bash
# 托管证书:交互确认后吊销(账户私钥签名)
certiman acme revoke -d example.com

# 私钥泄露:以证书私钥签名并标注原因
certiman acme revoke -d example.com --reason keyCompromise --with-cert-key

# 自动化环境:跳过交互确认
certiman acme revoke -d example.com -f

# 外部证书:无需 ACME 账户,以证书私钥签名吊销
certiman acme revoke \
  --cert-file /etc/ssl/certs/example.com.pem \
  --private-key /etc/ssl/private/example.com.key \
  --server https://acme.example.com/acme/v2/directory \
  --reason keyCompromise -f

输出 ​

0托管证书吊销成功(示例)
text
✔ 证书已吊销 · example.com
0外部证书吊销成功(示例)
text
» 外部吊销目标 · 序列号 03f2a1b4c5d6e7 · SHA-256 9f3k2d…
i 外部证书吊销不会更新 certiman 托管证书状态
✔ CA 已确认吊销外部证书

证书已处于吊销状态时,命令幂等成功并输出无变更提示。开启自动续期的托管证书在吊销后仍会按窗口续期,是否续期只取决于有效期与续期窗口;无需续期时,在证书配置中关闭 renew.auto_cert。

相关命令 ​