【问题标题】:Why AWS API Gateway requires SNI?为什么 AWS API Gateway 需要 SNI?
【发布时间】:2020-05-21 02:01:43
【问题描述】:

问题

  1. API 网关需要 HTTP/S 客户端支持 SNI 是否有特定原因?
  2. 哪个 AWS 文档明确说明了 SNI 要求?

关于问题2

我相信 SNI 是 TLS 的扩展,就我查看 RFC 而言,TLS version 1.2 不需要支持 SNI。 TLS 1.3 要求它是强制性的,但根据 AWS 文档 Supported SSL/TLS Protocols and Ciphers for Regional, Private, and WebSocket API Endpoints in API Gateway,看起来 AWS API Gateway 尚未采用 1.3。

因此,我想如果 AWS API Gateway 确实执行 SNI,似乎是 AWS 的特定要求或限制需要明确指出,但到目前为止我找不到这样说明的 AWS 文档。

因此,我认为应该有一个 AWS 文档,说明如下,但如果有错误请更正。

  • HTTP/S 客户端使用 API 网关必须支持 SNI
  • 对于 SNI 不支持的 HTTP/S 客户端,请使用 CloudFront(或其他可用方式)并且不要转发 HOST 标头。

参考文献

API 网关需要与支持服务器名称指示符 (SNI) 的客户端建立 https 连接

您确实可以将 CF dist 放在 APIG 前面,诀窍是强制 HTTPS 仅“查看器协议策略”并且不转发 HOST 标头,因为 APIG 需要 SNI。

【问题讨论】:

    标签: aws-api-gateway tls1.2 sni


    【解决方案1】:

    据我所知,API 网关不需要 SNI,这是一个配置选项,但不是必需的。

    The documentation I once used 了解类似情况清楚地表明 SNI 是一个选项,但专用 IP 地址可用于支持无法使用支持 SNI 的现代 TLS 客户端(浏览器)的用户。

    服务器名称指示 (SNI) 是将请求与 领域。另一种方法是使用专用 IP 地址。如果你有 无法升级到 2010 年之后发布的浏览器或客户端的用户, 您可以使用专用 IP 地址来处理 HTTPS 请求。

    根据您的问题,我假设您的 API 网关已配置为将 SNI 与 CloudFront 一起使用,因为也如以下 API Gateway documentation 所述:

    API Gateway 支持边缘优化的自定义域名,利用 CloudFront 分配上的服务器名称指示 (SNI)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-12-19
      • 2021-03-30
      • 2022-10-03
      • 2020-05-01
      • 2017-02-21
      • 2022-08-17
      • 1970-01-01
      相关资源
      最近更新 更多