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

为Nginx Ingress配置自定义证书遇自签名证书错误求助

解决Nginx Ingress未使用指定证书的问题

核心问题排查与修复步骤

1. 修复Ingress配置的语法错误

你的Ingress配置中rules部分存在语法问题:host和http被拆分为两个独立的规则条目,导致Kubernetes无法正确识别域名与路径的关联,cert-manager也无法为目标域名匹配证书。

错误配置片段:

rules:
- host: ro**-eu-**.names.domain.net
- http:
    paths:
    - path: /*
      pathType: Prefix
      backend:
        service:
          name: ro**-eu-**
          port:
            number: 443

修正后的配置:

rules:
- host: ro**-eu-**.names.domain.net
  http:
    paths:
    - path: /*
      pathType: Prefix
      backend:
        service:
          name: ro**-eu-**
          port:
            number: 443

2. 明确绑定已有Wildcard证书

由于你已经存在状态为Ready的wildcard-*-domain-net Secret,需要在Ingress的spec.tls部分手动指定该Secret,避免cert-manager尝试创建新证书(或无法关联已有证书):

spec:
  ingressClassName: public
  tls:
  - hosts:
    - ro**-eu-**.names.domain.net
    secretName: wildcard-*-domain-net  # 关联已有的wildcard证书Secret
  rules:
  # 修正后的rules条目...

3. 验证cert-manager与ClusterIssuer状态

执行以下命令检查ClusterIssuer是否正常工作:

kubectl describe clusterissuer letsencrypt-cf-dns

确认Status字段为Ready,且Events中无错误信息(如DNS验证失败、API调用超时等)。

4. 检查Ingress的事件与关联状态

查看Ingress的事件日志,确认cert-manager是否成功关联证书:

kubectl describe ingress ro**-eu-** -n io***

重点关注Events部分,是否存在Successfully authorized certificate或类似提示;如果有错误,根据提示排查(如域名不匹配、Secret权限问题等)。

5. 强制重载Nginx Ingress Controller

即使日志显示配置已同步,手动重启控制器确保配置生效:

kubectl rollout restart deployment nginx-ingress-controller -n <你的Ingress控制器命名空间>

6. 验证证书生效

重启完成后,再次使用openssl命令检测:

openssl s_client -showcerts -connect ro**-eu-**.names.domain.net:443

检查返回的证书是否为你的Let's Encrypt wildcard证书。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 20:54:17