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

API Gateway对接Elastic Beanstalk的SSL、DNS及代理配置问题咨询

配置排障与正确实现步骤

核心认知误区纠正

首先需要明确:当前你把api.example.com通过Route53解析指向API Gateway的配置是完全正确的,完全不需要修改为指向Elastic Beanstalk前置负载均衡器的IP。
你之前查到的“把域名别名指向ELB”的方案,本质是跳过API Gateway的直连架构,这种配置会让所有用户请求直接打到ELB上,你之前在API Gateway配置的Cognito用户池认证、API Key校验、使用计划限流等所有管控能力都会直接失效,完全违背你最初的架构设计目标。
全链路的正确流量路径为:
用户发起请求 → DNS解析到api.example.com对应的API Gateway → API Gateway完成身份/权限校验 → API Gateway将合法请求转发到后端Elastic Beanstalk的前置负载均衡器 → 请求到达EB应用环境。

报错根因定位

你遇到的Host name dualstack.awseb.foo.elb.amazonaws.com does not match the cert provided by peer(api.example.com)报错,本质是API Gateway向后端ELB发起HTTPS请求时的后端SSL证书校验失败:

  • API Gateway作为HTTPS客户端访问后端时,会自动校验“请求目标的主机名”和“后端返回的SSL证书包含的域名列表”是否匹配
  • 你当前的ELB上错误绑定了给API Gateway自定义域名用的api.example.com证书,这个证书的域名列表里只有api.example.com,根本不包含ELB自身的域名dualstack.awseb.foo.elb.amazonaws.com
  • 当API Gateway拿着ELB的域名作为请求主机名去匹配证书时,自然会提示域名不匹配

分步正确配置

1. 调整Elastic Beanstalk前置负载均衡器的SSL证书

  • 该ELB不直接面向公网用户提供访问,完全不需要绑定api.example.com的公网证书
  • 直接在同区域的AWS ACM中,申请一张覆盖ELB自身域名dualstack.awseb.foo.elb.amazonaws.com的免费证书,申请完成后将其绑定到ELB的443端口监听器上
  • 生产环境推荐用这种方式配置,不建议为了省事在API Gateway中关闭后端SSL校验,会存在中间人攻击的安全风险

2. 调整API Gateway的HTTP Proxy集成配置

  • 通配符路径配置:先在API Gateway资源下创建/{proxy+}的通配符资源,为该资源配置ANY方法的集成,实现所有路径的请求统一转发
  • 后端端点URL填写规则:直接填ELB的HTTPS根地址即可,格式为https://dualstack.awseb.foo.elb.amazonaws.com/,注意末尾必须带斜杠
  • 常见配置避坑:
    • 不要手动在后端URL里加{proxy}占位符,API Gateway会自动把用户请求的路径拼接到后端URL后面,手动加占位符会导致路径识别错误,触发Test按钮报错
    • 检查ELB的安全组配置:确保443端口对API Gateway的公网出口IP段开放,避免因为安全组拦截导致握手失败

3. 现有正常配置保留

  • 保留Route53中api.example.com指向API Gateway自定义域名的别名记录
  • 你之前验证的“curl api.example.com返回未授权响应”是配置正常的核心证明,说明API Gateway的鉴权链路已经打通,不需要做任何修改

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.30 05:06:04