如何将Cloudflare根域流量路由至AWS弹性负载均衡器?
AWS ALB 绑定 Cloudflare 自定义域名及 SSL 配置方案
一、根域无法配置 CNAME 的替代方案
根域(如example.com)受DNS规范限制不能直接设置CNAME记录,Cloudflare提供两种可靠替代方案:
- CNAME Flattening(首选):直接在Cloudflare DNS设置中给根域添加CNAME记录,值填你的ALB域名(如
xxx.us-east-1.elb.amazonaws.com)。Cloudflare会自动将这条记录解析为ALB的动态IP(定期刷新),同时保持代理功能(橙色云开启),既绕开根域CNAME限制,又能利用Cloudflare的CDN和安全防护。 - Cloudflare负载均衡(进阶):如果需要多区域容灾,可创建Cloudflare负载均衡池,将ALB域名添加为池成员,再给根域添加A记录指向Cloudflare负载均衡的VIP。这种方式适合复杂架构,但配置成本较高。
二、SSL 证书配置(Cloudflare + ALB)
根据是否启用Cloudflare代理,分两种配置模式:
模式1:Cloudflare 托管 SSL(推荐)
该模式下Cloudflare作为SSL终止点,处理访客HTTPS请求后转发给ALB:
- 在Cloudflare的
SSL/TLS设置中选择严格模式(最安全):- 在AWS ACM中申请覆盖自定义域名(如
example.com、*.example.com)的免费证书,绑定到ALB的HTTPS监听器(443端口)。 - Cloudflare会自动为你的域名颁发免费边缘证书,确保访客到Cloudflare的连接为HTTPS;同时Cloudflare到ALB的连接也用HTTPS,并验证ALB的证书有效性。
- 在AWS ACM中申请覆盖自定义域名(如
- 若暂时无法给ALB配置SSL,可选择灵活模式:访客到Cloudflare用HTTPS,Cloudflare到ALB用HTTP。但该模式存在中间明文传输风险,仅适合临时过渡。
模式2:ALB 托管 SSL(DNS-only 模式)
如果关闭Cloudflare代理(灰色云),让访客直接访问ALB:
- 在AWS ACM申请覆盖自定义域名的证书,绑定到ALB的HTTPS监听器。
- 在Cloudflare DNS中,根域用CNAME Flattening指向ALB域名,子域直接添加CNAME记录,此时SSL由ALB提供,Cloudflare仅做DNS解析。
三、流量路由配置(访客 → Cloudflare → ALB)
核心是将Cloudflare域名解析指向ALB,让流量通过Cloudflare中转,步骤如下:
- Cloudflare DNS 解析设置:
- 子域(如
www.example.com):添加CNAME记录,值为ALB域名,开启橙色云(代理)。 - 根域:添加CNAME记录,值为ALB域名,Cloudflare自动启用CNAME Flattening,开启橙色云。
- 子域(如
- ALB 监听器与安全组配置:
- 若用Cloudflare严格模式:配置ALB的443端口监听器,关联ACM证书,后端目标组根据服务器配置选择HTTP/HTTPS。
- 安全组规则:允许Cloudflare的IP段访问ALB的80/443端口,避免ALB公网IP直接暴露给访客。
- 验证配置:
- 访问自定义域名,检查是否正常跳转至你的Web服务。
- 用
curl -v命令查看SSL证书来源,确认Cloudflare或ALB的证书生效。
内容的提问来源于stack exchange,提问作者ashutosh Mohanty
相关产品推荐
相关产品推荐

