Docker部署NestJS到Elastic Beanstalk后HTTPS无法访问求助
排查与解决Elastic Beanstalk Docker部署HTTPS访问问题
核心排查与修复步骤
确认ALB证书绑定有效性
进入EC2控制台的负载均衡器页面,找到你的应用负载均衡器(ALB),切换到「监听器」标签,查看443端口监听器的详情:确保已绑定ACM中验证通过的证书,且证书覆盖你的子域名,无过期或域名不匹配情况。检查ALB转发规则
确认443监听器的转发规则指向目标组的80端口(与HTTP监听器一致),规则优先级无冲突,未被其他规则覆盖。通过
.ebextensions强制EB对齐ALB配置
Docker部署无法直接通过EB控制台修改负载均衡器配置,可创建.ebextensions/https-alb.config配置文件,将其放入部署包根目录后重新部署:option_settings: aws:elbv2:listener:443: ListenerEnabled: 'true' Protocol: HTTPS SSLCertificateArns: '你的ACM证书ARN' DefaultProcess: default aws:elbv2:listener:80: ListenerEnabled: 'true' Protocol: HTTP DefaultProcess: default aws:elbv2:targetgroup: TargetType: ip Port: 80该配置会确保EB环境的负载均衡器设置与你的手动配置一致。
验证子域名解析
使用nslookup或dig命令检查子域名CNAME记录:nslookup your-subdomain.example.com确认输出指向ALB的完整域名,而非EB环境默认域名。
多层安全组检查
除EB环境安全组外,需确认:- ALB的安全组允许外部443端口入站流量
- 目标组关联的EC2实例/ECS任务安全组,允许ALB安全组访问80端口
额外验证动作
- 直接访问ALB的HTTPS地址,若可正常访问,说明问题出在子域名解析或证书绑定;若不可访问,重点排查ALB监听器与目标组配置。
- 查看CloudWatch中的ALB访问日志,确认HTTPS请求是否到达ALB,以及是否存在转发错误。
内容的提问来源于stack exchange,提问作者ThomasM
相关产品推荐
相关产品推荐

