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

AKS集群Ingress Controller出现Fake Certificate问题求助

解决AKS中NGINX Ingress Controller的「Fake Certificate」问题

核心问题定位

你的Ingress配置中指定了secretName: TargetPods-tls,但目前查询的命名空间中不存在该Secret,这是NGINX fallback到伪证书的直接原因。结合cert-manager的部署情况,按以下步骤排查:

1. 确认目标Secret的存在性

首先检查Ingress所在命名空间(默认是default)中是否存在TargetPods-tls:

kubectl get secrets -n default

如果该Secret不存在,说明cert-manager未成功签发证书,或你未手动创建对应证书Secret。

2. 检查cert-manager证书资源状态

cert-manager需要通过Certificate资源触发证书签发,执行以下命令查看是否存在对应资源:

kubectl get certificates -n default
  • 如果Certificate不存在:创建关联ClusterIssuer的Certificate资源,示例YAML如下:

    apiVersion: cert-manager.io/v1
    kind: Certificate
    metadata:
      name: TargetPods-tls
      namespace: default
    spec:
      secretName: TargetPods-tls
      issuerRef:
        name: letsencrypt-cluster-issuer
        kind: ClusterIssuer
      dnsNames:
      - test.domain.io
    

    执行kubectl apply -f 上述文件.yaml创建后,等待证书签发。

  • 如果Certificate存在:查看其状态是否为Ready,若不是,通过事件详情排查错误:

    kubectl describe certificate TargetPods-tls -n default
    

    常见错误包括DNS验证失败、ACME挑战超时、ClusterIssuer配置异常等。

3. 验证ClusterIssuer的有效性

检查你的letsencrypt-cluster-issuer是否正常完成ACME注册:

kubectl describe clusterissuer letsencrypt-cluster-issuer

重点查看Status段的Conditions,确认是否有Ready=True的状态,若存在错误根据提示修复(比如邮箱验证、API访问限制等)。

4. 检查NGINX Ingress Controller日志

查看Ingress Controller的日志,确认是否有证书加载失败的具体报错:

kubectl logs -n ingress-nginx -l app.kubernetes.io/name=ingress-nginx

如果日志中出现secret not found之类的提示,说明Secret未创建或命名空间不匹配。

5. 确认命名空间匹配

Ingress默认部署在default命名空间,TargetPods-tls必须与Ingress处于同一命名空间。若Secret在其他命名空间,需在Ingress的tls块中添加secretNamespace字段(仅适用于支持该字段的Ingress版本),或将Secret移动到default命名空间。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 23:57:28