使用AWS Copilot部署NLB 443/tls端口HTTPS服务失败求助
AWS Copilot NLB HTTPS服务访问挂起排查思路
1. 证书有效性与关联检查
- 确认ACM证书状态为
Issued(已验证通过),且证书覆盖域名包含Copilot生成的NLB域名 - 检查NLB的443端口监听是否正确关联该ACM证书,避免选错或未关联证书
2. NLB监听与目标组配置核查
- 验证NLB 443端口监听协议为
TLS,目标组协议与服务容器端口匹配(容器仍监听80的话,目标组协议设为HTTP,由NLB终止TLS) - 确认目标组健康检查配置正确:路径、端口和服务实际健康检查端点一致,目标组状态为
healthy(健康检查失败的话,NLB不会转发流量) - 用
nslookup或dig检查Copilot提供的URL,确认能解析到NLB的IP
3. 网络层(安全组/网络ACL)排查
- NLB安全组:放行443端口的入站流量(来源设为0.0.0.0/0或指定网段)
- ECS任务安全组:允许NLB所在安全组访问容器监听的端口(比如80端口)
- 子网网络ACL:入站规则放行443端口,出站规则放行服务必要的对外流量(如ACM证书验证、服务依赖流量)
4. Copilot配置文件校验
- 检查
copilot/service/manifest.yml的端口配置,确保TLS规则正确,示例:
或端口数组配置:http: path: '/' port: 80 tls: certificates: - arn:aws:acm:region:account-id:certificate/cert-idports: - port: 443/tls target_port: 80 - 排查配置中是否存在端口规则冲突,比如同时配置80和443但未做跳转,或TLS配置遗漏
5. 服务容器与日志排查
- 通过ECS Exec进入容器,用
netstat -tulpn或ss -tulpn检查容器是否正常监听目标端口 - 查看CloudWatch Logs中的ECS任务日志:确认服务启动正常,是否有NLB转发的请求日志,或报错信息
- 在VPC内部直接访问容器私有IP+端口,验证服务本身能正常响应,排除服务自身问题
6. 客户端侧排查
- 执行
curl -v https://your-nlb-url查看请求过程:- TCP连接超时:大概率是网络层(安全组/ACL)问题
- TLS握手失败:检查证书是否不被信任,或NLB的TLS配置(协议版本、加密套件)是否与客户端兼容
- 尝试在VPC内的EC2实例上访问,排除本地网络或防火墙干扰
内容的提问来源于stack exchange,提问作者Seb
相关产品推荐
相关产品推荐

