在中国 AWS(亚马逊云科技中国区域)上开放 HTTP(80)和 HTTPS(443)端口供外部访问,确实需要完成一个额外的合规性步骤,这与 AWS Global 区域不同。这是因为中国的互联网法规要求所有提供公共 Web 服务的域名必须完成 ICP 备案,并且云服务提供商(如 AWS 中国)需要验证您的备案信息后才能允许公网流量通过 80/443 端口访问您的服务器。
您已经拥有了 ICP 备案号 并启动了 EC2 实例,这是非常好的前提。现在您需要做的是:
核心步骤:向 AWS 中国提交 ICP 备案信息进行白名单申请
-
登录 AWS 中国区控制台:
- 确保您使用的是 北京区域(cn-north-1) 或 宁夏区域(cn-northwest-1) 的控制台。
- 使用您的 AWS 中国区账户凭证登录。
-
找到并提交 ICP 备案白名单申请:
- 路径 1 (推荐 - 更直接): 在 AWS 控制台中,导航到 “支持中心” → “支持案例” → “创建案例”。
- 路径 2: 有时也可以在 EC2 控制台 的侧边栏找到类似 “ICP Recordal for Hosted Zones” 或 “ICP 备案” 的选项(具体名称可能略有变化,AWS 界面会更新)。
- 选择案例类型:
- 在创建支持案例时,选择 “服务限额增加” 或 “账户和账单支持” (有时它会被归类在这里)。
- 仔细查找与 “ICP Filing”, “ICP Recordal”, “开放端口 80/443”, “Public Web Service” 或 “ICP 备案白名单” 相关的选项。如果找不到明确的分类,选择最接近的,然后在描述中清晰说明。
- 填写申请信息: 在案例描述中,清晰、准确地 提供以下 关键信息:
- 您的 ICP 备案号: 这是最重要的信息!提供您在中国工信部成功备案的完整备案号(例如:京ICP备XXXXXXXX号-X)。
- 需要开放端口的域名: 明确写出您已经完成 ICP 备案的、需要通过 80/443 端口访问的 完整域名 (例如:
www.yourdomain.com
,yourdomain.com
)。 - 关联的 AWS 资源: 说明这些域名将指向哪些 AWS 资源(主要是您的 EC2 实例)。提供:
- 实例 ID: (例如:
i-0123456789abcdef0
) - 实例的公网 IP 地址 或 关联的弹性 IP 地址。
- 如果您使用了负载均衡器 (如 ALB/ELB),提供负载均衡器的 ARN 或 DNS 名称。
- 实例 ID: (例如:
- 端口号: 明确说明您需要开放 80 (HTTP) 和 443 (HTTPS) 端口。
- 请求原因: 简单说明您需要提供公共 Web 服务。
- 其他信息: 如果您的备案主体信息(公司名称、负责人等)与 AWS 账户信息有显著差异,最好也说明一下关系(例如:AWS 账户由备案主体公司持有和使用)。
-
提交并等待审核:
- 仔细检查填写的信息无误后,提交支持案例。
- AWS 中国的合规团队会人工审核您的申请。 他们会验证您提供的 ICP 备案号、域名以及 AWS 资源信息的有效性和一致性。
- 这个过程通常需要 几个工作日(具体时间取决于 AWS 的审核队列和您提供信息的清晰完整程度)。请耐心等待。
-
审核通过:
- 一旦 AWS 审核通过您的 ICP 备案信息,他们会将您的 域名 和 公网 IP/EIP/ELB 加入到他们的白名单中。
- 此时,外部用户通过 80/443 端口访问您指定的域名和资源就会被允许了。
- 您通常会收到 AWS 支持案例状态更新的通知(邮件或控制台内通知)。
重要补充事项:
- 安全组配置: 即使 AWS 在骨干网层面放行了 80/443 端口流量,您 EC2 实例关联的安全组 (Security Group) 入站规则也必须明确允许来自公网 (
0.0.0.0/0
或特定 CIDR) 的 80/tcp 和 443/tcp 流量。 这是您自己需要在 EC2 控制台配置的。没有这个配置,流量到了实例级别还是会被拦截。 - 负载均衡器 (推荐): 强烈建议使用 Application Load Balancer (ALB) 或 Classic Load Balancer (CLB) 来接收公网 80/443 流量,然后将请求转发到您的 EC2 实例(通常使用更高安全性的私有端口,如 8080, 8000)。这样做的好处:
- 提高可用性和可扩展性。
- 简化 SSL/TLS 证书管理(证书可以安装在负载均衡器上)。
- 在 ICP 白名单申请中,您只需提供负载均衡器的 DNS 名称或 IP,而不需要暴露所有后端 EC2 实例的 IP。 当您需要更换或扩展后端实例时,无需重新申请白名单。
- SSL/TLS 证书 (HTTPS 443): 如果您需要在 443 端口提供 HTTPS 服务,您还需要:
- 获取该域名的 SSL/TLS 证书(可以从 AWS Certificate Manager - ACM 免费申请,或从其他 CA 购买)。
- 将证书部署到您的 Web 服务器(如 Nginx, Apache)或负载均衡器上。
- 注意: 使用 HTTPS 服务本身不需要额外的 ICP 步骤(只要 443 端口在白名单中),但域名备案是前提。
- 域名解析: 确保您的域名(A 记录或 CNAME 记录)已经正确解析到您的 EC2 实例的公网 IP/EIP 或 负载均衡器的 DNS 名称。
总结操作流程:
- 确认: 拥有有效 AWS 中国账户、已完成目标域名的 ICP 备案、EC2 实例已运行。
- 配置安全组: 在 EC2 控制台,确保实例的安全组入站规则允许
0.0.0.0/0
访问 80/tcp 和 443/tcp (如果使用负载均衡器,安全组通常只需允许来自负载均衡器的流量)。 - (推荐) 设置负载均衡器: 创建 ALB/CLB,配置监听器(80->HTTP, 443->HTTPS),将流量转发到目标组(包含您的 EC2 实例)。
- 提交 ICP 白名单申请: 通过 AWS 支持中心创建案例,清晰提供 ICP 备案号、域名、关联的 AWS 资源(EC2 公网IP/EIP 或 负载均衡器 DNS),申请开放 80/443 端口。
- 等待审核: 耐心等待 AWS 中国团队审核(几个工作日)。
- 配置 DNS: 将域名解析指向您的 EC2 公网IP/EIP 或 负载均衡器 DNS。
- 配置 Web 服务器/SSL: 在 EC2 上配置好 Web 服务器软件(Nginx/Apache/Tomcat 等)监听相应端口,如需 HTTPS 则部署好证书(或在负载均衡器上部署)。
- 测试: 审核通过后,通过浏览器访问您的域名进行测试。
关键点再强调: 仅仅有 ICP 备案号和运行中的 EC2 实例是不够的。必须主动通过 AWS 支持案例提交您的备案信息和资源详情,等待 AWS 中国团队审核通过并添加到白名单后,公网 80/443 端口的访问才能生效。 请务必在支持案例中提供完整准确的信息以加快审核速度。