如何为 API Gateway API 设置自定义域名?

2 分钟阅读
0

我想为我的 Amazon API Gateway API 使用自定义域名,而不是默认基本 URL。该如何设置?

简短描述

您可以为 API Gateway API 创建两种类型的自定义域名: 区域型或(仅适用于 REST API)边缘优化型

注意:私有 API 不支持自定义域名

要为 API Gateway API 设置自定义域名,请执行下列操作:

以下是区域和边缘优化的自定义域名之间的一些主要区别。

目标端点差异

区域自定义域名使用区域 API 端点

边缘优化自定义域名使用 Amazon CloudFront 分配

SSL/TLS 证书的区别

区域自定义域名必须使用与您的 API 位于同一 AWS 区域的 SSL/TLS 证书。

边缘优化自定义域名必须使用位于下列区域的证书: 美国东部(弗吉尼亚州北部)(us-east-1)

自定义域名的区别

区域自定义域名可以由位于不同 AWS 区域的其他区域自定义域名共享。

边缘优化自定义域名是唯一的,不能与多个 CloudFront 分配相关联。

域名映射差异

WebSocket API 的区域自定义域名无法映射到 REST API 或 HTTP API。但是,区域自定义域可以与 REST API 和 HTTP API 相关联。

对于 REST API,边缘优化和区域自定义域名都可以具有边缘优化 API 端点和/或区域 API 端点的映射。

对于 WebSocket API 和 HTTP API,TLS 1.2 是唯一受支持的 TLS 版本。

解决方法

请求或导入 SSL/TLS 证书

在为 API 创建自定义域名之前,必须执行以下任一操作:

  • 向 AWS Certificate Manager(ACM)请求 SSL/TLS 证书。
    -或-
  • 将 SSL/TLS 证书导入 ACM。

**注意:**有关更多信息,请参阅 Getting certificates ready in AWS Certificate Manager

当请求或导入证书时,请记住下面的要求:

  • 若要通过域验证检查,证书必须包含自定义域名作为备用域名。
    **注意:**有关使用 CloudFront 分配进行验证检查(针对边缘优化自定义域名)的更多信息,请参阅 Continually Enhancing Domain Security on Amazon CloudFront。区域自定义域名也有相似的验证检查。
  • 对于边缘优化自定义域名,ACM 证书必须位于下列区域: 美国东部(弗吉尼亚州北部)(us-east-1)
  • 对于区域自定义域名,ACM 证书必须与您的 API 位于同一区域。

为 REST API、HTTP API 或 WebSocket API 创建自定义域名

对于 REST API,按照为 REST API 设置自定义域名中的说明进行操作。

对于 HTTP API,按照为 HTTP API 设置自定义域名的说明进行操作。

对于 WebSocket API,按照为 WebSocket API 设置自定义域名中的说明进行操作。

将流量路由到 API Gateway API

使用 Amazon Route 53 将流量路由到自定义域。这使您能够更好地控制用户访问您的域时可以访问的资源。

按照配置 Route 53 以将流量路由到 API Gateway 端点中的说明进行操作。

  • 配置 Route 53 时,必须创建公共托管区或私有托管区。如果面向互联网的应用程序要向用户提供资源,请选择公共托管区。有关更多信息,请参阅 Working with hosted zones
  • Route 53 使用记录来确定域流量的路由目的地。别名记录可以更轻松地为 AWS 资源提供 DNS 查询,而 CNAME(非别名)记录可以将 DNS 查询重定向到 AWS 资源之外。有关更多信息,请参阅 Choosing between alias and non-alias records

使用新的自定义域名调用 API 以测试设置

1.    使用您在创建自定义域名时指定的基本路径映射对域名运行 curl 命令。
**注意:**有关 curl 的更多信息,请参阅 curl 项目网站

2.    验证对自定义域名的响应是否与调用 API 阶段 URL 时收到的响应相同。


相关信息

Migrating a custom domain name to a different API endpoint

Requesting a public certificate