Cloudfront 分发不强制网关的 TLS 设置 API

Cloudfront distribution does not enforce TLS settings for Gateway API

跟进 ,我创建了一个具有以下配置的 Cloudfront 分发

Origin Domain Name as my Gate API endpoint https://abcdfefg.execute-api.us-east-1.amazonaws.com
Viewer Protocol Policy as HTTPS Only
Origin SSL Protocols as TLSv1.2, TLSv1.1 (Unchecked TLSv1)

other defaults

分发部署后,当我使用自定义域访问我的网关 API 时,我仍然能够在 TLSv1 上进行调用。

如何将我的自定义域映射到这个新的云端分发以强制执行 TLS 设置?

更新-1: 在使用自定义域调用网关 API 的 java 测试程序中,我启用了以下运行时参数

-Dhttps.protocols=TLSv1 -Djavax.net.debug=all

javax.net.debug 的输出确认 TLSv1 交换。

*** ClientHello, TLSv1
.... many lines output
*** ServerHello, TLSv1
..
Cipher Suite: TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA

也使用 curl 确认了 TLS v1 的使用。 卷曲输出包括:

* SSL connection using TLSv1.0 / ECDHE-RSA-AES128-SHA

为了让网关 API 和额外的云前端分发工作,我们需要

  1. 从 AWS 控制台,在 API 网关下转到 自定义域名 并删除映射的条目。
  2. 在云端设置中添加 CNAME 条目。在 AWS 控制台中,按照 添加备用域名
  3. 下的说明进行操作

完成上述更改后,访问 https 上的自定义域名将强制执行 Cloudfront 分发中定义的 TLS 安全设置。