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

如何将Amazon CloudFront与Elastic Beanstalk单实例连接以使用HTTPS证书

解决CloudFront与Elastic Beanstalk单实例/EC2的通信问题

核心误区澄清

CloudFront并非仅支持S3作为源,它完全可以配置自定义源指向Elastic Beanstalk环境或EC2实例的公网域名,以下是具体实现步骤:


1. 创建CloudFront分发时配置自定义源

在创建CloudFront分发的源设置环节:

  • 源类型选择「自定义源」
  • 源域名填写你的Elastic Beanstalk环境公网域名(例如xxx.elasticbeanstalk.com),或EC2实例的公网DNS
  • 源端口选择80(单实例EB默认通过HTTP提供服务)
  • 协议选择「HTTP only」(CloudFront与源用HTTP通信,对外提供HTTPS)

2. 配置缓存行为适配Angular+WebAPI架构

针对静态前端与动态API的不同特性,设置差异化缓存策略:

  • 静态资源路径(如/*):使用默认缓存策略,开启缓存提升访问性能
  • API路径(如/api/*):创建自定义缓存策略,设置「不缓存」,同时转发所有请求头(避免API请求丢失必要参数)

3. 关联ACM证书到CloudFront

  • 确保ACM证书在**us-east-1(弗吉尼亚北部)**区域创建(CloudFront仅支持该区域的ACM证书)
  • 证书需包含你对外使用的自定义域名(例如yourdomain.com),且已完成域名验证(DNS或邮箱方式)
  • 在CloudFront分发的「设置」→「SSL证书」中选择该ACM证书
  • 「查看器协议策略」选择「重定向HTTP到HTTPS」,强制用户通过HTTPS访问

4. 配置Route 53指向CloudFront分发

  • 修改Route 53中的域名记录,将A类记录的「别名」设置为CloudFront分发的域名
  • 必须选择「别名(Alias)」类型,而非直接填写IP,这样能自动适配CloudFront全球节点IP

5. 确保EB实例安全组允许CloudFront访问

  • 在EB实例的安全组中添加入站规则:允许HTTP(80端口)来自CloudFront官方前缀列表com.amazonaws.global.cloudfront.origin-facing
  • 该前缀列表会自动维护CloudFront所有源站访问的IP范围,无需手动更新

额外注意事项

  • ACM证书无法下载,仅能通过CloudFront、ELB等AWS托管服务使用,无需尝试部署到EB实例
  • EB环境域名是固定的(除非删除重建环境),不会因实例重启导致源地址失效
  • 若使用自定义域名,务必确保ACM证书覆盖该域名,否则CloudFront无法正常提供HTTPS服务

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 00:05:34