如何为AWS Elastic Beanstalk应用配置HTTPS解决混合内容错误
问题背景与故障现象
- 前端React项目通过AWS Amplify部署,生产分支自动配置HTTPS
- 后端API通过AWS Elastic Beanstalk部署,使用HTTP协议
- 前端发起API请求时触发混合内容拦截错误:
Mixed Content: 页面通过HTTPS加载(Amplify的HTTPS地址),但请求了不安全的HTTP协议的Elastic Beanstalk API端点,该请求已被拦截,内容必须通过HTTPS提供。
已尝试的配置(未解决,新增502错误)
为解决混合内容问题,完成以下配置后,访问HTTPS后端时出现502 Bad Gateway错误:
- 在Amazon Certificate Manager创建SSL证书
- 为Elastic Beanstalk应用添加应用负载均衡器
- 为负载均衡器配置443端口监听器,并关联上述SSL证书
已参考的无效方案
- Stack Overflow中关于Amplify HTTPS客户端请求HTTP端点的解决方案
- AWS官方文档中Elastic Beanstalk配置HTTPS的指南
- AWS官方文档中Elastic Beanstalk通过负载均衡器配置HTTPS的指南
排查与解决建议
- 端口转发规则检查:确认负载均衡器的443监听器已正确转发到后端实例的服务端口(如80或自定义业务端口),同时后端实例的安全组允许负载均衡器访问该端口。
- SSL证书有效性验证:检查ACM中的SSL证书是否已成功颁发,且证书覆盖的域名与Elastic Beanstalk的访问域名完全匹配,负载均衡器关联的证书状态正常。
- 后端实例健康状态排查:在Elastic Beanstalk控制台查看实例健康状态,若实例处于不健康状态,负载均衡器会返回502,需确认后端服务是否正常启动、端口是否正常监听。
- 域名解析配置确认:确保Elastic Beanstalk的HTTPS域名正确解析到负载均衡器的DNS地址,而非直接指向后端实例。
- 安全组规则检查:负载均衡器的安全组需允许443端口的入站流量,同时允许出站流量到后端实例的服务端口;后端实例的安全组需允许负载均衡器的IP段访问服务端口。
- 日志分析定位:查看负载均衡器的访问日志、后端实例的应用日志及Elastic Beanstalk平台日志,定位502错误的具体触发原因(如连接超时、后端无响应、证书不匹配等)。
内容的提问来源于stack exchange,提问作者Lucas_Santos
相关产品推荐
相关产品推荐

