更新时间:2025-07-18 GMT+08:00

为NGINX Ingress控制器插件配置ELB证书

NGINX Ingress控制器插件上支持使用以下方式配置Ingress证书:

  • 密钥证书:需要将证书导入至密钥(Secret)中,并为NGINX Ingress控制器插件指定服务器默认证书(default-ssl-certificate)。
  • ELB服务中的证书:直接使用ELB服务中创建的证书,NGINX Ingress控制器插件无需指定密钥证书。
图1 NGINX Ingress配置证书差异

本章节介绍如何在NGINX Ingress控制器插件上配置ELB证书,使用ELB证书管理请求使用的证书。

前提条件

  • 集群中安装的NGINX Ingress控制器插件需要为2.2.104、2.6.53、3.0.30及以上版本。
  • 启用NGINX Ingress控制器插件时请确认对接的独享型ELB实例是否符合协议要求。例如应用型ELB实例仅支持配置HTTP和HTTPS协议,如果还需要支持TCP协议,需要ELB实例同时支持应用型和网络型。
  • 启用ELB证书后,无法再使用NGINX Ingress控制器插件侧的服务器默认证书(default-ssl-certificate)。所有外部请求均需要携带配置的ELB证书才可访问内部服务。

操作步骤

  1. 登录CCE控制台,单击集群名称进入集群。
  2. 在左侧导航栏中选择“插件中心”,在右侧找到NGINX Ingress控制器插件,单击“安装”

    如果已安装该插件,则单击“管理”,并选择需要配置ELB证书的实例单击“编辑”。

  3. “扩展参数配置”中,填写以下参数。

    1. 配置service.annotations参数,并确认协议填写是否正确。

      示例如下:

      ...
              "service": {
                 "annotations": {
                    "kubernetes.io/elb.class": "performance",
                    "kubernetes.io/elb.id": "*****",
                    "kubernetes.io/elb.protocol-port": "https:443,http:80",
                    "kubernetes.io/elb.cert-id": "*****"
              },
      ...

      参数名称

      值类型

      参数说明

      kubernetes.io/elb.class

      String

      负载均衡器类型。

      • union:共享型ELB。
      • performance:独享型ELB。

      kubernetes.io/elb.id

      String

      ELB实例ID,可前往ELB控制台查看。

      kubernetes.io/elb.protocol-port

      String

      NGINX Ingress控制器插件监听器端口配置,其中监听器协议需要与ELB实例支持的类型相匹配,例如使用HTTP/HTTPS协议需要支持应用型的独享型ELB。

      • 使用HTTP/HTTPS协议:将443端口、80端口分别发布成HTTPS、HTTP协议作为示例,因此参数值为https:443,http:80
      • 使用TLS协议:将443端口、80端口发布成TLS协议作为示例,因此参数值为tls:443,tls:80
        说明:
        • 配置TLS协议时集群版本要求为v1.23.14-r0、v1.25.9-r0、v1.27.6-r0、v1.28.4-r0及以上。
        • 配置TLS协议依赖ELB能力,使用该功能前请确认当前区域是否支持使用TLS协议。

      kubernetes.io/elb.cert-id

      String

      ELB服务中的证书ID。

      获取方法:在CCE控制台,单击顶部的“服务列表 > 网络 > 弹性负载均衡”,并选择“证书管理”。在列表中复制对应证书名称下的ID即可。

      针对以上参数的详细说明请参考为负载均衡类型的Service配置HTTP/HTTPS协议

    2. 配置targetPort参数,将ELB的访问流量指向容器的HTTP端口。

      示例如下:

      ...
      		"targetPorts": {
      			"http": "http",
      			"https": "http"
      		},
      ...

      启用ELB证书后,原先NGINX Ingress Controller配置的服务器默认证书(default-ssl-certificate)将不可用,配置后不生效。外部请求均需要携带配置的ELB证书,否则请求将无法解析。

  4. 根据需求选择其他必选参数后,单击“安装”。关于参数的详细说明请参见NGINX Ingress控制器
  5. 配置下发完成后,在左侧导航栏中选择“服务”,并切换至“kube-system”命名空间,查看插件对接的监听器端口协议,本示例中为HTTP和HTTPS,而不是TCP协议。