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

cert-manager证书订单失败:400 rejectedIdentifier错误求助

排查cert-manager ACME证书签发失败(rejectedIdentifier)问题

错误含义解析

urn:ietf:params:acme:error:rejectedIdentifier 表示ACME CA(如Let's Encrypt)拒绝了你的域名标识符,核心原因通常是域名不符合ACME规范,或CA无法验证域名归属的基础条件。以下是分步排查方案:

1. 验证域名合法性

  • 确认Grafana使用的是可公共解析的有效域名,ACME CA不为.local/.internal等私有后缀域名签发证书。
  • 在集群外执行nslookup <grafana-domain>或dig <grafana-domain>,确保域名存在正确的A/AAAA记录,指向集群Ingress Controller的公网IP。
  • 排查域名是否被ACME CA列入黑名单,或存在DNS污染问题。

2. 核对ClusterIssuer配置

  • 检查ACME服务器地址:生产环境应为https://acme-v02.api.letsencrypt.org/directory,测试环境用https://acme-staging-v02.api.letsencrypt.org/directory,避免混淆。
  • 验证solvers配置:
    • 若用HTTP-01挑战:确保Ingress Controller的80端口可被公网访问,无防火墙/安全组拦截。
    • 若用DNS-01挑战:确认DNS服务商API密钥权限足够,能添加TXT记录。
  • 检查ClusterIssuer状态:执行kubectl get clusterissuers,确保状态为Ready;若异常,查看日志:kubectl logs -n cert-manager -l app=cert-manager。

3. 检查Ingress资源配置

  • 确认spec.tls[].hosts域名无拼写错误,与ClusterIssuer适用范围匹配。
  • 验证Ingress是否添加正确注解:
    annotations:
      cert-manager.io/cluster-issuer: "<your-clusterissuer-name>"
    
  • 确保spec.rules中的host与TLS hosts一致,且Ingress Controller能正确路由到Grafana服务。
  • 查看Ingress事件:kubectl describe ingress <grafana-ingress-name>,排查cert-manager相关错误提示。

4. 分析证书与订单资源

  • 查看证书状态:kubectl get certificates,若为Failed,执行kubectl describe certificate <cert-name>获取详情。
  • 定位异常订单:kubectl get orders,找到errored状态的订单,执行kubectl describe order <order-name>查看具体失败原因。
  • 检查挑战资源:kubectl get challenges,若无结果,说明订单在创建挑战前已失败,大概率是域名验证前置条件不满足。

5. 提取cert-manager日志排查

过滤目标域名相关日志:

kubectl logs -n cert-manager -l app=cert-manager --tail=100 | grep "<grafana-domain>"

重点关注DNS解析失败、挑战路径不可访问等细节错误。

常见坑点

  • k3s自带Traefik Ingress Controller需确保80/443端口已暴露到公网,安全组允许对应端口入站流量。
  • 新注册域名需等待DNS记录全球同步(10-30分钟)后再申请证书。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 17:52:47