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

CloudFront与Elastic Beanstalk间SSL配置问题求助(爱尔兰区域)

解决CloudFront + Elastic Beanstalk + Route 53的HTTPS配置难题

兄弟,我太懂你在这套架构上折腾的痛苦了——CloudFront、Elastic Beanstalk(EB)加Route 53搭HTTPS链路,细节多到让人崩溃。结合你已经完成的操作,我给你列几个最容易卡壳的坑和对应的解决办法:

一、CloudFront源配置的核心细节

  • 源协议策略必须选「HTTPS only」:你的EB已经启用了HTTPS,CloudFront和EB之间必须用纯HTTPS通信,别选「HTTP and HTTPS」,不然很容易出现混合内容错误或者证书不匹配的问题。
  • 确认源域名能正常HTTPS访问:你填的xxxxxxxx.eu-west-1.elasticbeanstalk.com是对的,但先手动用浏览器打开这个地址,确保没有证书警告或访问错误——如果EB本身的HTTPS就有问题,CloudFront肯定也跑不通。
  • 自定义Origin ID尽量清晰命名:比如叫EB-EU-WEST-1-Origin,后续配置行为时能快速关联,避免搞混。

二、CloudFront行为(Behavior)必改配置

  • Viewer Protocol Policy设为「Redirect HTTP to HTTPS」:强制所有用户走HTTPS,彻底杜绝HTTP请求带来的安全和兼容问题。
  • Allowed HTTP Methods要包含OPTIONS:如果你的EB应用有前端API请求,跨域预检会用到OPTIONS方法,默认配置可能没开,这会直接导致前端请求失败。
  • 动态应用别用默认缓存策略:如果是PHP、Node.js这类动态应用,建议选「Managed-CachingDisabled」或者自定义缓存策略,只缓存CSS、JS这类静态资源,不然动态内容会被CloudFront缓存,导致更新不及时。

三、ACM证书的致命区域坑!

你在eu-west-1创建的证书只能给EB用!CloudFront有个硬性要求:它只认us-east-1(弗吉尼亚)区域创建的ACM证书,哪怕你的所有资源都在爱尔兰。所以你必须去us-east-1区域再创建一份包含xyz.com和*.xyz.com的SSL证书,然后在CloudFront分发的「自定义SSL证书」选项里选这份新证书——这是90%的人都会踩的大坑!

四、Route 53 DNS记录的正确姿势

  • 别直接指向EB地址:必须把域名指向CloudFront的分发域名(比如d123456abcdef.cloudfront.net)。
  • 用Alias记录而非CNAME:Route 53的Alias记录会自动关联CloudFront,不仅支持根域名(xyz.com)解析(CNAME做不到),还能自动更新CloudFront的IP变化,比CNAME稳定得多。记录类型选A(IPv4)或AAAA(IPv6),然后开启「Alias」选项,目标选你的CloudFront分发。
  • TTL设为300秒:默认值就行,后续修改DNS时能快速生效,减少等待时间。

五、EB安全组与负载均衡的收尾检查

  • EB负载安全组要允许HTTPS流量:CloudFront的IP范围很大,你可以直接允许所有443端口的入站流量,或者用AWS的服务前缀cloudfront.amazonaws.com来配置安全组规则(需要在安全组里用条件语句指定源为这个服务)。
  • 确认EB负载均衡监听器配置正确:检查443端口是否已经关联了你在eu-west-1创建的ACM证书,并且正确转发到EB实例的80或443端口(如果实例本身也配置了证书的话)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 09:48:39