CloudFront配置HTTPS源协议时与ELB通信返回502 Bad Gateway错误
问题排查与解决步骤
第一步:验证ALB的HTTPS监听器配置
- 确认ALB是否配置了HTTPS 443端口的监听器,且监听器关联的安全组开放了CloudFront出口IP段的443端口入站权限
- 检查HTTPS监听器的规则是否能匹配CloudFront的请求:如果CloudFront回源时携带的Host头、访问路径不在ALB监听器规则的匹配范围内,请求会被直接拦截返回错误
- 确认ALB HTTPS监听器关联的SSL证书有效性:证书的SAN字段必须包含你配置在CloudFront源站的域名,不能是自签名证书,必须是AWS ACM或者受公共信任的CA颁发的未过期证书
第二步:验证CloudFront源站配置
- 检查CloudFront源站的
源域名设置是否和ALB HTTPS证书覆盖的域名完全一致:如果你填的是ALB的默认域名(格式为xxx.region.elb.amazonaws.com),需要确认你的ALB证书确实包含这个默认域名(多数场景下用户自定义证书不会覆盖ALB默认域名,这是最常见的报错原因) - 检查CloudFront的源站协议策略配置为HTTPS时,对应的
源站HTTPS端口是否正确设置为443,不要误填为80 - 检查CloudFront回源的Host头配置:如果你配置了自定义Host头,需要确认这个Host头的值在ALB HTTPS证书的覆盖范围内,同时匹配ALB监听器的转发规则
第三步:本地验证ALB HTTPS服务可用性
直接通过curl命令测试ALB的HTTPS接口是否正常,替换对应参数后执行:curl -v https://<你的ALB域名>/<测试路径> --resolve <你的ALB域名>:443:<ALB公网IP>
如果curl返回证书错误、连接超时等问题,优先修复ALB侧的HTTPS服务故障。
常见问题修复方案
- 证书域名不匹配问题:将CloudFront源站域名改为你ALB证书覆盖的自定义域名,同时在CloudFront源站设置中配置Host头为该自定义域名即可
- 安全组拦截问题:在ALB的安全组中添加入站规则,允许CloudFront的IP段访问443端口
- 监听器规则不匹配问题:调整ALB HTTPS监听器的规则,确保CloudFront回源的域名、路径能匹配到对应转发规则,或者配置兜底的默认转发规则
内容的提问来源于stack exchange,提问作者Shazam
相关产品推荐
相关产品推荐

