为 CloudFront 分配租户申请证书
创建分配租户时,该租户从多租户分配继承共享 AWS Certificate Manager(ACM)证书。此共享证书为与多租户分配关联的所有租户提供 HTTPS。
在创建或更新 CloudFront 分配租户以添加域时,可以从 ACM 添加托管式 CloudFront 证书。然后,CloudFront 将代表您从 ACM 获得经 HTTP 验证的证书。可以将此租户级别 ACM 证书用于自定义域配置。CloudFront 简化了续订工作流程,有助于将证书保持为最新状态并确保内容交付不间断。
注意
您拥有证书,但它 只能 与 CloudFront 资源结合使用,并且 无法 导出私有密钥。
可以在创建或更新分配租户时申请证书。
添加域和证书(分配租户)
以下过程演示了如何为分配租户添加域和更新证书。
添加域和证书(分配租户)
-
登录 AWS 管理控制台,并通过以下网址打开 CloudFront 控制台: https://console.aws.amazon.com/cloudfront/v4/home
。 -
在 SaaS 下,选择 分配租户 。
搜索分配租户。使用搜索栏中的下拉菜单,按域、名称、分配 ID、证书 ID、连接组 ID 或 Web ACL ID 进行筛选。
选择分配租户名称。
-
对于 域 ,选择 管理域 。
-
对于 证书 ,选择是否要为分配租户使用 自定义 TLS 证书 。该证书会验证您是否获得授权可使用该域名。该证书必须存在于美国东部(弗吉尼亚州北部)区域中。
对于 域 ,选择 添加域 并输入域名。根据您的域,以下消息将出现在您输入的域名下方。
域所有权 :域所有权的状态。在 CloudFront 可以提供内容之前,必须使用 TLS 证书验证来验证域所有权。
DNS 状态 :域的 DNS 记录必须指向 CloudFront,才能正确地路由流量。
如果域所有权未得以验证,请在租户详细信息页面的 域 之下,选择 完成域设置 ,然后完成以下过程来将 DNS 记录指向您的 CloudFront 域名。
完成域设置
按照这些过程来验证您拥有分配租户的域。根据您的域,选择以下过程之一。
注意
如果域已使用 Amazon Route 53 别名记录指向 CloudFront,则必须在域名前面添加带有
_cf-challenge.的 DNS TXT 记录。此 TXT 记录可验证域名是否已关联到 CloudFront。对每个域重复此步骤。以下内容显示如何更新 TXT 记录:记录值:
CloudFrontRoutingEndpoint
例如,TXT 记录类似于:
_cf-challenge.example.com TXT
d111111abcdef8.cloudfront.net
您可以在控制台中的分配租户详细信息页面上找到 CloudFront 路由端点,也可以使用《Amazon CloudFront API Reference》 中的 ListConnectionGroups API 操作来找到该端点。
提示
如果您是 SaaS 提供商,并且想要在不要求客户(租户)直接向其 DNS 中添加 TXT 记录的情况下支持证书颁发,请执行以下操作:
如果您拥有域
example-saas-provider.com
,请将子域分配给您的租户,例如
customer-123.example-saas-provider.com
在 DNS 中,将
_cf-challenge.customer-123.example-saas-provider.com TXT
d111111abcdef8.cloudfront.net
TXT 记录添加到 DNS 配置中。
接下来,您的客户(租户)可以更新其自己的 DNS 记录,以便将其域名映射到您提供的子域。
www.customer-domain.com CNAME
customer-123.example-saas-provider.com
如果域无法容忍停机时间,请选择此选项。您必须有权访问源/Web 服务器。使用以下过程验证域所有权。
当有现有流量时完成域设置
-
对于 指定 Web 流量 ,选择 我有现有流量 ,然后选择 下一步 。
对于 验证域所有权 ,请选择以下选项之一:
手动上传文件 :选择您是否拥有将文件上传到 Web 服务器的直接访问权限。
对于每个域,创建一个纯文本文件(其中包含来自 令牌位置 的验证令牌),然后将其上传到位于现有服务器上指定 文件路径 处的源。此文件的路径可能如以下示例所示:
/.well-known/pki-validation/acm_9c2a7b2ec0524d09fa6013efb73ad123.txt。完成该步骤后,ACM 会验证令牌,然后为该域颁发 TLS 证书。HTTP 重定向 :如果您不具有将文件上传到 Web 服务器的直接访问权限,或者您正在使用 CDN 或代理服务,请选择此选项。
对于每个域,在现有服务器上创建 301 重定向。复制 重定向自 下的已知路径,并指向 重定向至 下的指定证书端点。重定向可能类似于以下示例:
If the URL matches: example.com/.well-known/pki-validation/leabe938a4fe077b31e1ff62b781c123.txt Then the settings are:Forwarding URL Then 301 Permanent Redirect:To validation.us-east-1.acm-validations.aws/123456789012/.well-known/pki-validation/leabe938a4fe077b31e1ff62b781c123.txt注意
可以选择检查证书状态来验证 ACM 何时为该域颁发证书。
选择下一步。
完成将域指向 CloudFront 的步骤。
- I don't have traffic
如果您要添加新域,请选择此选项。CloudFront 将为您管理证书验证。
在没有流量的情况下完成域设置
-
在指定 Web 流量中,选择我还没有流量。
对于每个域名,请完成将域指向 CloudFront 的步骤。
在更新每个域名的 DNS 记录后,选择下一步。
等待颁发证书。
注意
可以选择检查证书状态来验证 ACM 何时为该域颁发证书。
选择提交。
将域指向 CloudFront
更新您的 DNS 记录,以便将来自每个域的流量路由到 CloudFront 路由端点。您可以有多个域名,但它们必须全部解析到此端点。
将域指向 CloudFront
-
复制 CloudFront 路由端点值,例如 d111111abcdef8.cloudfront.net。
更新您的 DNS 记录,以便将来自每个域的流量路由到 CloudFront 路由端点。
名称:顶级域(例如
example.com)记录类型:A
别名:是
别名目标:CloudFront 路由端点
路由策略:简单(或任何适合用例的策略)
-
验证 DNS 更改是否已传播。(这通常在 TTL 过期时发生。有时可能需要 24-48 小时。) 使用
dig或nslookup之类的工具。dig www.example.com # Should eventually return a CNAME pointing to your CloudFront routing endpoint返回 CloudFront 控制台并选择提交。当域处于活动状态时,CloudFront 会更新域状态,以表明域已准备好提供流量。
有关更多信息,请参阅 DNS 提供商的文档:
域注意事项(分配租户)
当域处于活动状态时,域控制已建立,CloudFront 将响应查看器对该域的所有请求。一旦激活,域就无法停用或更改为非活动状态。当域已在使用中时,该域无法与其它 CloudFront 资源关联。要将该域与其它分配相关联,请使用 UpdateDomainAssociation 请求将该域从一个 CloudFront 资源移到另一个 CloudFront 资源。
当域处于非活动状态时,CloudFront 将不会响应查看器对该域的请求。当域处于非活动状态时,请注意以下情况:
如果您有待处理的证书请求,CloudFront 将响应对已知路径的请求。当请求处于待处理状态时,域无法与任何其它 CloudFront 资源关联。
如果您没有待处理的证书请求,CloudFront 将不会响应对该域的请求。可以将该域与其它 CloudFront 资源相关联。
对于每个分配租户,您只能有一个待处理的证书请求。您必须先取消现有待处理的请求,然后才能为其它域请求另一个证书。取消现有证书请求不会删除关联的 ACM 证书。可以使用 ACM API 将其删除。
如果您将新证书应用于分配租户,这将取消与先前证书的关联。可以重用该证书来涵盖其它分配租户的域。
与续订经 DNS 验证的证书一样,当证书续订成功时,您会收到通知。然而,您不需要做任何其它事情。CloudFront 将自动管理域的证书续订。
注意
您无需调用 ACM API 操作,即可创建或更新证书资源。您可以通过使用 CreateDistributionTenant 和 UpdateDistributionTenant API 操作来管理证书,以便为托管式证书请求指定详细信息。
注意
地理限制兼容性:CloudFront 托管式证书验证与地理限制兼容。当您对使用 CloudFront 托管式证书的分配启用地理限制时,会将验证请求排除在地理限制规则之外。证书颁发机构从多个地理上分布的网络视角验证域所有权(多视角颁发证实),以防止 BGP 劫持。无论您屏蔽或允许哪些国家/地区,CloudFront 都能确保这些验证请求取得成功。
使用此功能无需任何操作。如果您之前移除了地理限制作为证书验证失败的解决方法,则可以安全地重新应用它们。
通配符域(分配租户)
在以下情况下,分配租户支持通配符域: