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

GKE私有集群中cert-manager HTTP-01挑战失败(401错误)求助

GKE私有集群中cert-manager HTTP-01挑战401失败排查方案

1. 私有集群端口访问权限检查

私有集群默认存在控制平面与节点的网络隔离,cert-manager的cm-acme-http-solver服务依赖GCP ALB的访问完成挑战,需确认以下配置:

  • 检查节点池防火墙规则,是否允许GCP LB的IP段(35.191.0.0/16、130.211.0.0/22)访问节点的NodePort端口范围(30000-32767)。
  • 用命令查看现有规则:
    gcloud compute firewall-rules list --filter="targetTags=YOUR_CLUSTER_NODE_TAGS"
    
  • 若缺少对应规则,创建一条允许ALB访问NodePort的规则:
    gcloud compute firewall-rules create allow-alb-to-nodeport \
      --allow tcp:30000-32767 \
      --source-ranges 35.191.0.0/16,130.211.0.0/22 \
      --target-tags YOUR_CLUSTER_NODE_TAGS \
      --description "Allow GCP ALB to access NodePort services"
    

2. Ingress路径冲突修正

你的Ingress配置中/前缀路径会匹配所有请求,包括cert-manager的挑战路径/.well-known/acme-challenge/,若后端服务有认证拦截,会直接返回401。需添加优先匹配的挑战路径规则:

ingress:
  enabled: true
  annotations:
    kubernetes.io/ingress.class: 'gce'
  hosts:
    - host: myhost.com
      paths:
        - path: /.well-known/acme-challenge/
          pathType: Prefix
          backend:
            service:
              name: cm-acme-http-solver-XXXX # 替换为实际solver服务名
              port:
                number: 8089
        - path: /
          pathType: Prefix
  tls:
    - hosts:
        - myhost.com # 修正原配置中的笔误myhost.com.com
      secretName: customer-secret-tls

注:cm-acme-http-solver为cert-manager临时创建的服务,可通过kubectl get svc -n cert-manager查看实际名称。

3. Cert-manager配置验证

  • 确认Issuer/ClusterIssuer的HTTP-01 solver配置正确,指定GCE Ingress类:
    apiVersion: cert-manager.io/v1
    kind: ClusterIssuer
    metadata:
      name: letsencrypt-prod
    spec:
      acme:
        server: https://acme-v02.api.letsencrypt.org/directory
        email: your-email@example.com
        privateKeySecretRef:
          name: letsencrypt-prod
        solvers:
        - http01:
            ingress:
              class: gce
    
  • 查看cert-manager核心日志获取细节:
    kubectl logs -n cert-manager -l app=cert-manager
    

4. 后端服务认证规则排除

若myhost.com对应的后端服务配置了OAuth2、Basic Auth等认证机制,需将/.well-known/acme-challenge/路径添加到认证白名单,允许匿名访问。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 04:25:09