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

Cert Manager证书续期仍使用就地编辑Ingress问题求助

解决Cert Manager续期时仍编辑现有Ingress的问题

核心原因

Cert Manager会留存证书与Ingress的历史关联配置,即便你移除了Ingress上的相关注解,证书对象内部可能仍绑定着旧的挑战规则,导致续期时还是复用原Ingress。

具体解决步骤

1. 检查证书的挑战关联配置

先查看目标证书的YAML配置,确认是否还绑定了原Ingress:

kubectl get certificate <你的证书名称> -o yaml

重点关注spec.acme.config下的http01或tls-alpn01节点,看是否存在ingress:字段指向原Ingress资源。

2. 修改证书配置,强制生成新挑战Ingress

编辑证书对象,在ACME挑战配置中添加ingressTemplate字段,明确指定要创建新的Ingress来完成挑战:

spec:
  acme:
    config:
    - http01:
        ingressTemplate:
          metadata:
            annotations:
              kubernetes.io/ingress.class: "nginx" # 替换为你的Ingress类
          spec: {} # 留空即可,Cert Manager会自动填充挑战规则
      domains:
      - <你的域名>

保存配置后,Cert Manager会触发新的证书请求,此时会创建独立的临时Ingress处理挑战,不再修改原Ingress。

3. 清理残留的旧挑战资源(可选)

如果之前的临时挑战Ingress、Order或Challenge对象还存在,可以手动清理:

# 删除旧的挑战Ingress
kubectl delete ingress <旧挑战Ingress名称>
# 清理过期的Order和Challenge
kubectl delete order --all -n <证书所在命名空间>
kubectl delete challenge --all -n <证书所在命名空间>

4. 验证配置生效

手动触发一次证书续期测试,观察是否生成新的挑战Ingress:

kubectl annotate certificate <你的证书名称> cert-manager.io/renew-by=$(date +%s --date="-1 day")

查看Ingress列表,确认新的挑战Ingress被创建,且原Ingress未被修改。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 20:12:12