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

AWS API Gateway配置Mutual TLS后环境URL访问认证不生效问题

问题根因
  • AWS API Gateway的双向TLS(mTLS)功能仅对绑定的自定义域名入口生效,你访问的Elastic Beanstalk(EB)默认环境域名没有经过API Gateway的自定义域名接入层,自然不会触发mTLS校验逻辑。
  • 你当前的访问链路是:直接访问EB环境域名 → 直接打到配置的Nginx负载均衡层,完全绕过了API Gateway的mTLS校验模块,若没有在Nginx侧额外配置mTLS,这条链路本身就没有校验逻辑。
修复方案

方案1:限制直接访问EB环境域名,强制所有流量走API Gateway自定义域名

  • 首先在EB的安全组中配置入站规则,仅允许API Gateway的IP段或VPC链路访问,禁止公网直接访问EB环境域名
  • 配置API Gateway的集成指向EB的内部访问地址,所有公网请求仅允许通过app.sandbox.domain.com这个自定义域名访问,此时所有公网请求都会触发mTLS校验。

方案2:如果需要保留EB域名的访问能力,在Nginx层额外配置mTLS校验

如果确实需要允许直接通过EB域名访问,就在当前的Nginx负载均衡配置中添加mTLS校验逻辑,核心配置示例:

server {
    listen 443 ssl;
    server_name app-sandbox.us-east-1.elasticbeanstalk.com;

    # 服务端证书配置
    ssl_certificate /path/to/eb-domain/fullchain.pem;
    ssl_certificate_key /path/to/eb-domain/privkey.pem;

    # 开启客户端证书校验(mTLS)
    ssl_verify_client on;
    # 配置CA根证书,和API Gateway侧用的CA保持一致
    ssl_client_certificate /path/to/your/ca-root.pem;
    # 校验深度按需调整
    ssl_verify_depth 2;

    # 其他原有配置...
}

注意:该方案会让EB域名的mTLS校验逻辑和API Gateway侧独立,需要两边同步更新CA证书、校验规则等配置,避免出现校验逻辑不一致的问题。

排查验证方法
  • 先通过自定义域名https://app.sandbox.domain.com访问,确认不带客户端证书时返回401/403错误,携带正确客户端证书时可以正常访问,验证API Gateway侧的mTLS配置正常生效。
  • 调整访问链路后,再访问EB域名,确认此时要么无法直接访问,要么会触发和自定义域名一致的mTLS校验即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 07:09:03