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

如何通过HTTPS对外提供ECS(EC2部署)后端服务?

为ECS容器配置HTTPS的两种可行方案

方案一:使用AWS应用负载均衡(ALB)配置HTTPS(推荐)

这是ECS集群的标准实践,适配已创建的集群,步骤如下:

  1. 申请/导入SSL证书

    • 进入AWS Certificate Manager(ACM)申请免费SSL证书,需覆盖你要使用的域名(无域名的话先在Route 53或其他服务商注册)。证书要和ECS集群处于同一区域,避免跨区域访问问题。
  2. 创建或配置ALB

    • 若无ALB,在EC2控制台负载均衡器页面创建应用负载均衡器:
      • 选择公网访问模式,设置与ECS集群EC2实例同VPC的子网。
      • 安全组配置允许HTTPS(443端口)入站流量,同时开放ALB访问ECS实例容器端口的权限(比如你之前用的8080端口)。
    • 已有ALB的话,直接编辑监听规则:
      • 添加HTTPS监听(端口443),关联ACM中申请的证书。
      • 设置转发规则,将HTTPS流量导向目标组。
  3. 配置目标组

    • 在EC2控制台目标组页面新建目标组,目标类型选实例(针对EC2启动类型的ECS集群),端口设为容器暴露的端口(如8080)。
    • 将ECS集群内的EC2实例注册到该目标组,配置正确的健康检查规则(比如路径设为服务的健康检查端点/health)。
  4. 更新ECS服务配置

    • 进入ECS控制台,找到对应集群和服务并编辑:
      • 在「网络」模块,将服务的负载均衡配置关联到新建的ALB和目标组。
      • 确保服务安全组允许ALB安全组访问容器端口。
  5. 配置域名解析(可选但推荐)

    • 若有域名,在Route 53或域名服务商处,将域名解析到ALB的DNS名称,实现https://your-domain.com的访问方式。

方案二:在EC2实例或容器内直接配置SSL证书

如果不想依赖ALB,也可在实例或容器层面配置HTTPS:

  1. 获取SSL证书

    • 若用ACM证书,无法直接下载,可改用Let's Encrypt免费证书,通过certbot工具申请获取证书文件。
  2. 在容器中配置HTTPS

    • 修改Docker镜像,集成Nginx/Apache作为反向代理,配置SSL证书和443端口。比如Nginx配置示例:
      server {
          listen 443 ssl;
          server_name your-domain.com;
      
          ssl_certificate /path/to/cert.pem;
          ssl_certificate_key /path/to/privkey.pem;
      
          location / {
              proxy_pass http://localhost:8080; # 转发到后端服务端口
          }
      }
      
    • 重新构建镜像,更新ECS服务的容器定义,将容器443端口映射到EC2实例的443端口。
  3. 配置EC2安全组

    • 开放EC2实例443端口的入站流量,确保外部可访问。

注意事项

  • 优先选择ALB方案,它能自动管理证书续期、负载均衡和健康检查,契合AWS高可用架构。
  • 若为Fargate启动类型的ECS集群,目标组类型选IP即可;EC2启动类型则选「实例」。
  • 测试时可用curl -v https://your-domain.com或浏览器访问,验证证书有效性和服务连通性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 14:40:30