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

如何在Nginx Ingress中为同一域名配置RSA与GOST两份TLS证书?

问题解答

是否可以通过Nginx Ingress实现单域名双证书TLS终结

可以实现,需满足以下前提和配置要求:

  • 你使用的Nginx Ingress Controller镜像需要内置支持GOST算法的加密库:官方默认发布的Nginx Ingress镜像未编译GOST相关支持,你需要基于对应版本的源码,替换底层OpenSSL为支持国密GOST的版本,重新编译镜像后替换集群内的Ingress Controller镜像。
  • 配置方法如下:
  1. 将test.example.com对应的RSA证书、GOST证书分别创建为K8s Secret 资源,类型为kubernetes.io/tls。
  2. 编写Ingress资源配置,同一域名下关联两个证书Secret,同时通过annotation配置支持GOST的加密套件,示例如下:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: test-example-ingress
  annotations:
    # 按需调整加密套件,保留RSA相关套件的同时加入GOST套件
    nginx.ingress.kubernetes.io/ssl-ciphers: "ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:GOST2012-GOST8912-GOST8912"
spec:
  tls:
  - hosts:
    - test.example.com
    secretName: test-example-rsa-tls # RSA证书对应的Secret
  - hosts:
    - test.example.com
    secretName: test-example-gost-tls # GOST证书对应的Secret
  rules:
  - host: test.example.com
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: your-backend-service
            port:
              number: 80

Nginx Ingress实现方案的优劣势

  • 优势:无需引入额外组件,复用现有K8s技术栈,证书、路由配置统一在集群内管理
  • 劣势:自定义镜像的维护成本高,后续Ingress Controller版本升级需要重新编译适配,同时要验证修改镜像后对集群内其他Ingress资源的兼容性影响。

外部负载均衡实现方案的合理性对比

如果你现有的外部负载均衡(如云厂商SLB、硬件负载设备)原生支持GOST算法、同域名多证书挂载,优先选择外部负载均衡做TLS终结更合理,优势如下:

  • 无需修改现有Nginx Ingress的镜像配置,不会影响集群内已有业务的稳定性
  • 负载均衡层专门做TLS卸载性能更强,同时可以统一管理所有业务的证书,不需要在多个K8s集群分散配置,运维成本更低。

选型建议

  • 如果仅当前集群需要支持GOST双证书,且能承担自定义镜像的维护成本,可选择Nginx Ingress实现
  • 如果有多集群国密支持需求、或不想修改现有稳定的Ingress配置,优先选择外部负载均衡实现。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 08:18:04