You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在K8s中使用cert-manager ACME工作流:新证颁发后旧证是否吊销?能否控制?

关于cert-manager ACME工作流中旧证书吊销的问题

1. 默认行为:不会自动吊销旧证书

cert-manager在默认配置下,当新证书颁发完成后,不会主动吊销旧的未过期证书。原因在于ACME协议本身并不强制要求吊销未过期证书,而cert-manager的设计优先保证服务可用性——旧证书只要还在有效期内,就可以继续被应用使用,避免因吊销操作可能带来的服务中断风险。

2. 手动触发旧证书吊销的方式

如果你需要主动吊销旧证书,有两种可行方法:

  • 使用cert-manager CLI:针对目标Certificate资源执行吊销命令:
    kubectl cert-manager revoke <certificate-name> --namespace <namespace>
    
    该命令会向ACME服务器(如Let's Encrypt)发送吊销请求,同时标记对应证书资源为已吊销状态。
  • 添加资源注解触发:给目标Certificate添加cert-manager.io/revoke: "true"注解,cert-manager检测到后会自动启动吊销流程:
    apiVersion: cert-manager.io/v1
    kind: Certificate
    metadata:
      name: example-cert
      namespace: default
      annotations:
        cert-manager.io/revoke: "true"
    spec:
      # 原有证书配置内容
    
    吊销完成后建议移除该注解,防止重复触发操作。

3. 实现自动吊销的自定义方案

目前cert-manager没有内置配置支持"新证书颁发后自动吊销旧证书"的逻辑,但可以通过自定义方式实现类似效果:

  • 编写自定义Kubernetes控制器:监听Certificate资源的状态变化,当检测到新证书颁发成功(通过status.conditions中Ready状态为True、且status.notAfter更新为新时间),自动触发旧证书的吊销操作。
  • 结合Job与定时任务:定期扫描集群内的Certificate资源,对比证书序列号或有效期,找出已被替换的旧证书,批量执行吊销命令。

注意:频繁触发吊销请求可能会触发ACME服务商的速率限制(比如Let's Encrypt的吊销请求频次限制),操作前需确认服务商的相关规则。

内容的提问来源于stack exchange,提问作者Olafs Aploks

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 12:13:53