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

Cloudflare Full模式下K8s Nginx Ingress SSL配置返回525错误如何解决?

问题原因

HTTP 525错误是Cloudflare和源站(也就是你的Nginx Ingress控制器)进行SSL握手失败导致的。Flexible模式下Cloudflare到源站走HTTP协议,不需要验证源站SSL证书,所以访问正常;Full模式要求Cloudflare到源站必须走HTTPS协议,只要源站SSL配置有问题就会触发该报错。

修复步骤

  • 第一步:验证secret-tls有效性
    首先确认该Secret存放在api命名空间下,且包含完整的证书和私钥:
    kubectl get secret secret-tls -n api -o yaml
    
    检查输出的data字段下必须同时存在tls.crt和tls.key两个字段。之后验证证书域名匹配和有效期:
    kubectl get secret secret-tls -n api -o jsonpath='{.data.tls\.crt}' | base64 -d | openssl x509 -text -noout
    
    确认证书的Subject Alternative Name (SAN) 字段包含api.mydomain.com,且证书未过期。
  • 第二步:排查Nginx Ingress配置正确性
    首先检查Ingress配置是否被控制器正常加载,无报错:
    kubectl describe ingress ingress-api -n api
    
    查看输出的Events字段,如果有证书加载失败、配置同步失败之类的报错,优先处理对应问题。
    之后手动测试源站HTTPS服务是否可用,在集群内任意可联网的Pod中执行:
    curl -v --resolve api.mydomain.com:443:<你的Ingress控制器公网IP> https://api.mydomain.com
    
    如果该请求返回证书无效、连接被重置、握手失败等报错,说明源站本身HTTPS配置异常。
  • 第三步:修正已知的配置问题
    你当前使用的extensions/v1beta1版本Ingress API已经在Kubernetes 1.19+版本中被弃用,新版本Nginx Ingress控制器对旧API的适配可能存在异常,建议升级为networking.k8s.io/v1版本的配置。
    另外确认你的服务器安全组、集群网络策略没有拦截Cloudflare回源IP的443端口访问,同时不要配置过于严格的SSL加密套件,避免Cloudflare和源站无法协商出可用的加密方案。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 17:39:03