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

AWS EKS中ALB Ingress单配置实现多域名SSL配置咨询

结论

完全可以通过单个Ingress配置实现两个独立域名绑定各自独立SSL证书的需求,AWS ALB Ingress Controller(现升级命名为AWS Load Balancer Controller)原生适配ALB的多SNI证书能力,不需要拆分多个Ingress资源。

实现原理

AWS Application Load Balancer本身支持在同一个HTTPS监听器上挂载多个SSL证书,客户端发起TLS握手时会携带SNI(Server Name Indication)信息标记要访问的域名,ALB会自动匹配返回对应证书,不会出现证书不匹配的问题。ALB Ingress Controller会自动把你在Ingress里声明的证书配置同步到ALB监听器上,不需要手动去AWS控制台调整ALB配置。

配置步骤
  • 提前准备好两个域名对应的SSL证书,推荐导入到ALB所在区域的AWS Certificate Manager(ACM)中,也可以上传到IAM供ALB调用,记录好两个证书的ARN。
  • 编写Ingress配置,两种常用证书声明方式选其一即可:
    • 方式一:在tls字段中为每个域名单独声明配置,每个tls块对应一个域名和它的证书引用
    • 方式二:直接在Ingress注解中传入多个证书ARN,路由规则按域名正常编写即可
配置示例
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: multi-domain-ing
  annotations:
    kubernetes.io/ingress.class: alb
    alb.ingress.kubernetes.io/scheme: internet-facing
    alb.ingress.kubernetes.io/listen-ports: '[{"HTTPS":443}, {"HTTP":80}]'
    alb.ingress.kubernetes.io/ssl-redirect: '443'
    # 方式二可直接在这里写多个证书ARN,用逗号分隔
    # alb.ingress.kubernetes.io/certificate-arn: "arn:aws:acm:cn-north-1:123456789012:certificate/xxx-foo,arn:aws:acm:cn-north-1:123456789012:certificate/xxx-bar"
spec:
  tls:
    # 第一个域名foo.example.com对应配置
  - hosts:
    - foo.example.com
    # secretName引用提前创建的、存储了对应证书ARN的K8s Secret
    secretName: foo-domain-cert
    # 第二个域名bar.example.com对应配置
  - hosts:
    - bar.example.com
    secretName: bar-domain-cert
  rules:
  - host: foo.example.com
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: foo-svc
            port:
              number: 80
  - host: bar.example.com
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: bar-svc
            port:
              number: 80

注:如果选择注解直接传证书ARN的方式,不需要在tls块里关联Secret,只需要把两个域名写入tls块的hosts列表即可。

注意事项
  • 证书必须部署在ALB所在的AWS区域,跨区域的ACM证书或者IAM证书ALB无法正常调用
  • 配置完成后可以通过openssl命令验证证书是否正确匹配:openssl s_client -connect <ALB公网地址>:443 -servername <对应域名>,查看返回的证书链是否和访问域名匹配
  • v1版本的AWS ALB Ingress Controller需要升级到1.1.5及以上版本才支持多证书SNI配置,v2版本的AWS Load Balancer Controller全版本支持该能力

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 22:54:30