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

Nginx Ingress客户端证书认证失效问题咨询

客户端证书认证配置说明

当前由kubernetes/ingress-nginx维护的Nginx Ingress Controller完全支持客户端证书认证,你的配置未生效是因为缺少关键的配套注解——仅设置nginx.ingress.kubernetes.io/auth-tls-verify-client: "on"无法触发完整的验证逻辑。

必要配置注解

  • 指定验证客户端证书的CA证书Secret(必填):
    nginx.ingress.kubernetes.io/auth-tls-secret: "<命名空间>/<CA证书Secret名称>"
    
    该Secret需包含ca.crt字段,存储PEM格式的CA根证书,用于校验客户端证书的合法性。
  • 证书链验证深度(可选,建议配置):
    nginx.ingress.kubernetes.io/auth-tls-verify-depth: "1"
    
    控制证书链的验证层级,默认值为1,适配多数场景。

额外前置条件

你的Ingress必须配置HTTPS:在spec.tls字段中绑定服务器证书Secret,客户端证书认证仅能在TLS连接上生效。

完整Ingress示例

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: client-cert-auth-ingress
  annotations:
    nginx.ingress.kubernetes.io/auth-tls-verify-client: "on"
    nginx.ingress.kubernetes.io/auth-tls-secret: "default/ca-root-secret"
    nginx.ingress.kubernetes.io/auth-tls-verify-depth: "1"
spec:
  tls:
  - hosts:
    - your-domain.com
    secretName: server-tls-secret
  rules:
  - host: your-domain.com
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: your-backend-service
            port:
              number: 80

排查要点

  1. 确认CA Secret格式正确:Secret类型可为kubernetes.io/tls或Opaque,必须包含ca.crt键值对,内容为PEM格式证书。
  2. 检查Ingress Controller Pod日志:查看是否存在CA Secret加载失败的报错(如权限不足、Secret不存在)。
  3. 确认控制器类型:若你使用的是NGINX官方维护的nginx-ingress-controller,注解格式会不同(对应nginx.org/client-certificate-secret和nginx.org/verify-client),这也是你在NGINX官方文档找不到对应注解的原因。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 16:12:37