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

如何为AWS负载均衡器自动分配的DNS配置HTTPS?

AWS Kubernetes LoadBalancer Service HTTPS 配置方案

首先明确结论:你无法直接为AWS自动分配的*.elb.amazonaws.com格式域名申请ACM公有可信证书,AWS限制了第三方机构不得为amazonaws.com二级域名下的子域名颁发公有SSL证书,你可以通过以下方案实现HTTPS配置:

方案一:使用自定义域名(生产环境推荐)

这是生产环境通用的标准实现方案,步骤如下:

  • 准备一个归你所有的自定义域名(例如example.com,可在AWS Route53或任意域名服务商处注册)
  • 在ACM中为你计划使用的子域名(例如gateway.example.com)申请公有SSL证书,完成域名所有权验证后获取证书ARN
  • 修改你的Service配置,调整端口规则和annotations,参考配置如下:
kind: Service
apiVersion: v1
metadata:
  name: gateway-svc
  annotations:
    service.beta.kubernetes.io/aws-load-balancer-backend-protocol: http
    service.beta.kubernetes.io/aws-load-balancer-ssl-cert: arn:aws:acm:<你的集群区域>:<你的AWS账号ID>:certificate/<你的证书ID>
    service.beta.kubernetes.io/aws-load-balancer-ssl-ports: "443"
    # 可选配置:自动将80端口的HTTP请求重定向到443 HTTPS端口
    # service.beta.kubernetes.io/aws-load-balancer-ssl-redirect: "443"
spec:
  selector:
    app: gateway
  type: LoadBalancer
  ports:
  - name: http
    port: 80
    targetPort: 4000
  - name: https
    port: 443
    targetPort: 4000
  • 等待Service创建完成,获取AWS自动分配的ELB域名
  • 在你的域名解析服务商处添加一条CNAME记录,将你使用的子域名(如gateway.example.com)解析到上述ELB域名即可。后续直接访问https://gateway.example.com即可获得可信的HTTPS连接。

方案二:使用自签名证书(测试场景使用)

如果是临时测试场景不想注册自定义域名,可以使用自签名证书实现,缺点是浏览器会提示证书不受信任,手动跳过风险提示后即可使用:

  • 自行生成自签名SSL证书,将证书的Common Name字段填写为ELB自动分配的域名
  • 将生成的自签名证书导入到ACM中,获取对应的证书ARN
  • 在Service的annotations中填写上述导入的证书ARN,其余配置和方案一一致即可。

注意事项

  • ACM证书的区域必须和你的Kubernetes集群、ELB实例所在区域保持一致
  • 如果你的域名托管在AWS Route53,可部署ExternalDNS Kubernetes组件自动完成CNAME记录的创建,无需手动操作解析配置

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 22:57:02