为 CloudFront 分配启用源双向 TLS - Amazon CloudFront
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

为 CloudFront 分配启用源双向 TLS

通过 Amazon Certificate Manager 获取客户端证书并将原始服务器配置为要求双向 TLS 后,您可以在 CloudFront 分配上启用源 mTLS。

先决条件和要求

在 CloudFront 分配上启用源 mTLS 之前,请确保您具有:

  • 存储在美国东部(弗吉尼亚州北部)区域(us-east-1)的 Amazon Certificate Manager 中的客户端证书

  • 配置为要求双向 TLS 身份验证和验证客户端证书的原始服务器

  • 原始服务器,提供来自公开信任的证书颁发机构的证书

  • 修改 CloudFront 分配的权限

  • 源 mTLS 仅适用于商务版、高级版方案或按实际使用量付费定价方案。

注意

可以为自定义源(包括在 Amazon 外部托管的源)和支持双向 TLS 的 Amazon 源(例如应用程序负载均衡器和 API Gateway)配置源 mTLS。

重要

源 mTLS 不支持以下 CloudFront 功能:

  • gRPC 流量:启用了源 mTLS 的源不支持 gRPC 协议

  • WebSocket 连接:启用了源 mTLS 的源不支持 WebSocket 协议

  • VPC 源:源 mTLS 不能与 VPC 源一起使用

  • 使用 Lambda@Edge 的源请求和源响应触发器:源 mTLS 不支持源请求和源响应位置中的 Lambda@Edge 函数

  • 嵌入式 POP:嵌入式 POP 不支持源 mTLS

启用源 mTLS

每源配置支持您为同一分配中的不同源指定不同的客户端证书。当源有不同的身份验证要求时,这种方法可以提供最大的灵活性。

对于新分配(控制台)

  1. 登录 Amazon Web Services 管理控制台,并通过以下网址打开 CloudFront 控制台:https://console.amazonaws.cn/cloudfront/v4/home

  2. 选择创建分配

  3. 选择定价方案:选择商业版高级版按实际使用量付费 [免费方案不提供源 mTLS]

  4. 在“源设置”部分,选择源类型为“其它”

  5. 源设置部分,选择自定义源设置

  6. 配置第一个源(域名、协议等)

  7. 在源配置中,找到 mTLS

  8. mTLS 切换为开启

  9. 对于客户端证书,从 Amazon Certificate Manager 中选择您的证书

  10. (可选)添加具有其自己的源 mTLS 配置的其它源

  11. 填写其余分配设置,然后选择创建分配

对于现有分配(控制台)

  1. 登录 Amazon Web Services 管理控制台,并通过以下网址打开 CloudFront 控制台:https://console.amazonaws.cn/cloudfront/v4/home

  2. 从分配列表中,选择要修改的分配。[注意:请确保您的分配采用专业版、高级版或按实际使用量付费定价方案。否则,您必须先升级您的定价方案,然后才能启用源 mTLS]

  3. 选择选项卡

  4. 选择要配置的源,然后选择编辑

  5. 在源设置中,找到 mTLS

  6. mTLS 切换为开启

  7. 对于客户端证书,从 Amazon Certificate Manager 中选择您的证书。[注意:只会列出 EKU(扩展密钥用法)属性设置为“TLS 客户端身份验证”的客户端证书]

  8. 选择保存更改

  9. 根据需要对其它源重复此操作

使用 Amazon CLI

对于每源配置,请在每个源的配置中指定源 mTLS 设置:

{ "Origins": { "Quantity": 2, "Items": [ { "Id": "origin-1", "DomainName": "api.example.com", "CustomOriginConfig": { "HTTPSPort": 443, "OriginProtocolPolicy": "https-only" }, "OriginMtlsConfig": { "ClientCertificateArn": "arn:aws:acm:us-east-1:123456789012:certificate/cert-1" } }, { "Id": "origin-2", "DomainName": "backend.example.com", "CustomOriginConfig": { "HTTPSPort": 443, "OriginProtocolPolicy": "https-only" }, "OriginMtlsConfig": { "CertificateArn": "arn:aws:acm:us-east-1:123456789012:certificate/cert-2" } } ] } }
注意

如果服务器不请求客户端证书,CloudFront 将不会提供该证书,从而支持正常进行连接。

后续步骤

在 CloudFront 分配上启用源 mTLS 后,可以使用 CloudFront 访问日志监控身份验证事件。