通过添加备用域名(CNAME)使用自定义 URL
在创建分配时,CloudFront 会为其提供域名,例如 d111111abcdef8.cloudfront.net。您可以使用备用域名(也称为 CNAME),而不是使用提供的此域名。
要了解如何使用您自己的域名(例如 www.example.com),请参阅以下主题:
使用备用域名的要求
在向 CloudFront 分配添加备用域名(例如 www.example.com)时,需满足以下要求:
- 备用域名必须小写
-
所有备用域名 (CNAME) 都必须小写。
- 备用域名必须为有效的 SSL/TLS 证书所涵盖
-
要将备用域名 (CNAME) 添加至 CloudFront 分配,必须给您的分配附加一个可信且有效的 SSL/TLS 证书,其中涵盖了备用域名。这样可以确保仅有权访问您的域证书的人员能够将 CloudFront 关联到与您的域相关的 CNAME。
受信任证书是由 AWS Certificate Manager(ACM)或其他有效证书颁发机构(CA)颁发的证书。您可以使用自签名证书来验证现有的 CNAME,但不能 验证新的 CNAME。CloudFront 支持与 Mozilla 相同的证书颁发机构。有关当前列表,请参阅 Mozilla 包含的 CA 证书列表
。有关使用第三方 CA 时的中间证书的信息,请参阅中间证书。 为了使用附加的证书来验证备用域名(包括含通配符的域名),CloudFront 会检查证书上的使用者备用名称 (SAN)。要添加的备用域名必须为 SAN 所涵盖。
注意
一次只能将一个证书附加到 CloudFront 分配。
您可以通过执行以下操作之一来证明您有权向分配中添加特定的备用域名:
附加包含备用域名的证书,例如 product-name.example.com。
附加一个证书,其中包括一个 * 通配符在域名的开头,以用一个证书涵盖多个子域。当指定通配符时,可以在 CloudFront 中添加多个子域作为备用域名。
以下示例说明了如何在证书的域名中使用通配符来授权您在 CloudFront 中添加特定的备用域名。
您要添加 marketing.example.com 作为备用域名。您在证书中列示以下域名:*.example.com。当您将此证书附加到 CloudFront 时,可以为您的分配添加任何备用域名,以替换该层次上的通配符,包括 marketing.example.com。例如,您还可以添加以下备用域名:
product.example.com
api.example.com
但是,不能添加所在层次高于或低于通配符的备用域名。例如,您不能添加备用域名 example.com 或 marketing.product.example.com。
您要添加 example.com 作为备用域名。要执行此操作,必须在附加到分配的证书上列出域名 example.com 本身。
您要添加 marketing.product.example.com 作为备用域名。要执行此操作,您可以在证书上列出 *.product.example.com,也可以在证书上列出 marketing.product.example.com 本身。
- 更改 DNS 配置所需的权限
-
在添加备用域名时,您必须创建 CNAME 记录,以将备用域名的 DNS 查询路由到您的 CloudFront 分配。要执行此操作,您必须具有创建 CNAME 记录的权限,并为您使用的备用域名指定 DNS 服务提供商。通常,这意味着您拥有这些域,但您可能在为域所有者开发应用程序。
- 备用域名和 HTTPS
-
如果您希望查看器使用 HTTPS 和备用域名,还必须进行其他配置。有关更多信息,请参阅 使用备用域名和 HTTPS。
备用域名的使用限制
请注意备用域名的以下使用限制:
- 备用域名的最大数量
-
有关您可以添加到分配的当前最大备用域名数,或者要请求提高配额(以前称为限制),请参阅分配的一般配额。
- 重复和重合备用域名
-
如果相同的备用域名已经在另一个 CloudFront 分配中存在,则您不能将其添加到 CloudFront 分配中,即使您的 AWS 账户拥有其他分配也不行。
不过,您可以添加通配符备用域名(例如 *.example.com),该域名包含(重叠)非通配符备用域名,例如 www.example.com。如果在两个分配中有重合的备用域名,则 CloudFront 将发送请求到具有更具体名称匹配的那个分配,而不管 DNS 记录指向哪个分配。例如,marketing.domain.com 比 *.domain.com 更具体。
如果您有指向 CloudFront 分配的现有通配符 DNS 条目,并且您在尝试添加具有更具体名称的新 CNAME 时收到 DNS 配置不正确的错误,请参阅当我尝试添加新的 CNAME 时,CloudFront 返回了 DNS 记录配置不正确的错误。
- 域前置
-
CloudFront 中包含防止域前置跨不同 AWS 账户发生的措施。在域前置中,非标准客户端会建立与一个 AWS 账户中的域名的 TLS/SSL 连接,但随后又发出针对另一个 AWS 账户中的不相关名称的 HTTPS 请求。例如,TLS 连接可能连接到 www.example.com,然后发出对 www.example.org 的 HTTP 请求。
为防范跨不同 AWS 账户的域前置攻击,CloudFront 确保拥有为特定连接提供证书的 AWS 账户始终与拥有在同一连接上被处理的请求的 AWS 账户匹配。
如果两个 AWS 账号不匹配,CloudFront 将做出“HTTP 421 错误定向请求”响应,让客户端有机会使用正确的域进行连接。
- 在域的顶部节点(顶级域名)添加备用域名
-
当您将备用域名添加到分配时,通常在 DNS 配置中创建 CNAME 记录,以将域名的 DNS 查询路由到 CloudFront 分配。不过,您无法为 DNS 命名空间的顶端节点(也称为顶级域名)创建 CNAME 记录;DNS 协议不允许您这样做。例如,如果您注册了 DNS 名称 example.com,则顶级域名为 example.com。您不能为 example.com 创建 CNAME 记录,但可以为 www.example.com、newproduct.example.com 等创建 CNAME 记录。
如果您使用 Route 53 作为您的 DNS 服务,则可以创建别名资源记录集,与 CNAME 记录相比,该记录集具备 2 个优势。您可以在顶部节点 (example.com) 为域名创建别名资源记录集。此外,当您使用别名资源记录集时,就不用付款进行 Route 53 查询了。
注意
有关更多信息,请参阅《Amazon Route 53 开发人员指南》中的使用域名将流量路由到 Amazon CloudFront Web 分配。