You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法通过HTTPS连接AWS EC2实例的问题排查求助

问题描述

我启动了AWS EC2实例并部署了Nginx服务,目前可通过HTTP(80端口)和SSH(22端口)正常连接该实例,但无法通过HTTPS(443端口)访问。我完成了以下配置:

网络ACL设置

入站规则

Rule number |   Type   |Protocol|Port|  Source |Allow/Deny
1           | HTTP(80) | TCP(6) | 80 |0.0.0.0/0| Allow
2           |HTTPS(443)| TCP(6) |443 |0.0.0.0/0| Allow
3           |  SSH(22) | TCP(6) | 22 |0.0.0.0/0| Allow
4           |HTTPS(443)| TCP(6) |443 |   ::/0  | Allow
*           |Alltraffic|  ALL   |ALL |0.0.0.0/0| Deny   (AWS default)

出站规则

Rule number |   Type   |Protocol|Port|  Source |Allow/Deny
1           |Alltraffic|  ALL   |ALL |0.0.0.0/0| Allow
2           |Alltraffic|  ALL   |ALL |   ::/0  | Allow
*           |Alltraffic|  ALL   |ALL |0.0.0.0/0| Deny   (AWS default)

安全组设置

入站规则

Type   |Protocol|Port|  Source 
HTTPS(443)| TCP(6) |443 |0.0.0.0/0
HTTPS(443)| TCP(6) |443 |   ::/0  
  SSH(22) | TCP(6) | 22 |0.0.0.0/0
 HTTP(80) | TCP(6) | 80 |0.0.0.0/0

出站规则

Type   |Protocol|Port|  Source 
Alltraffic|  ALL   |ALL |0.0.0.0/0
Alltraffic|  ALL   |ALL |   ::/0  

使用Reachability Analyzer测试从互联网网关到实例的80端口连接,结果显示可达;但测试443端口时,提示错误信息:Network ACL <acl> does not allow inbound traffic。

请问为何会出现该情况?应如何解决?


解答

根据配置和错误提示,核心问题集中在网络ACL(NACL)的规则生效逻辑或配置关联上,以下是具体排查方向和解决步骤:

可能的原因

  1. EC2实例所在子网未关联你配置的NACL:如果子网绑定的是其他未开放443端口的NACL,就会触发该错误。
  2. NACL入站规则存在隐性配置错误:虽然你列出的规则包含443允许,但可能存在规则编号优先级错误、端口范围配置偏差、或源地址限制过严的情况。
  3. NACL规则未正确保存或同步:AWS控制台配置有时会存在短暂同步延迟,或规则修改后未确认保存。

解决步骤

1. 确认子网与NACL的关联关系

  • 进入AWS EC2控制台,找到目标实例,查看其所在的子网ID。
  • 切换到VPC控制台的「网络ACL」页面,找到你配置的NACL,检查「关联的子网」列表中是否包含上述子网ID。如果没有,将该子网关联到当前NACL。

2. 重新校验NACL入站规则细节

  • 打开目标NACL的入站规则编辑页面,重点检查规则2:
    • 确保「类型」为HTTPS (443),「协议」为TCP (6)。
    • 「端口范围」需精确设置为443-443(部分场景下单独填443可能被识别为范围错误)。
    • 「源」为0.0.0.0/0,「允许/拒绝」为允许。
    • 确认该规则的编号在默认拒绝规则(*)之前,NACL规则是按编号从小到大依次执行的,一旦匹配到拒绝规则就会终止。

3. 验证实例本地的监听与防火墙

  • 登录EC2实例,执行以下命令确认Nginx是否监听443端口:
    ss -tuln | grep 443
    
    如果没有输出,说明Nginx未配置443端口监听,需要检查Nginx配置文件(通常在/etc/nginx/conf.d/或/etc/nginx/sites-available/目录下),添加HTTPS监听配置并重启Nginx。
  • 检查实例本地防火墙(如iptables或firewalld)是否允许443端口入站:
    # 检查iptables
    iptables -L -n | grep 443
    # 检查firewalld(若使用)
    firewall-cmd --list-all | grep 443
    
    如果没有允许规则,需添加对应规则:
    # iptables
    iptables -A INPUT -p tcp --dport 443 -j ACCEPT
    # firewalld
    firewall-cmd --add-port=443/tcp --permanent
    firewall-cmd --reload
    

4. 重新运行Reachability Analyzer验证

完成上述配置后,再次使用Reachability Analyzer测试443端口的连通性,确认错误是否消失。


内容的提问来源于stack exchange,提问作者Yakov Akimov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 17:01:34