自定义域问题排查 - AWS Amplify 托管

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

自定义域问题排查

如果您在将自定义域名连接到 Amplify 应用程序时遇到问题,请查阅本节中的主题以获取帮助。

如果您在此处看不到问题的解决方案,请联系 AWS Support。 有关更多信息,请参阅中的创建支持案例 AWS Support 用户指南

我需要验证我的CNAME解决方法

  1. 向第三方域名提供商更新DNS记录后,您可以使用诸如 dig 之类的工具或免费网站(例如 https://www.whatsmydns.net/)来验证您的CNAME记录是否正确解析。以下屏幕截图演示了如何使用 whatsmydns.net 来查看你的 www.example.com 域名的CNAME记录。

    whatsmydns.net 应用程序,你可以在其中输入要查看的网站名称。
  2. 选择 “搜索”,whatsmydns.net 会显示你的搜索结果。CNAME以下屏幕截图是验证是否正确CNAME解析为 cloudfron URL t.net 的结果列表的示例。

    显示解析结果的 whatsmydns.net 应用程序。CNAME

我在第三方托管的域卡在了等待验证状态

  1. 如果您的自定义域名处于 “待验证” 状态,请确认您的 CNAME 记录正在解析。参见之前的疑难解答主题 “如何验证我的 CNAME 已解决,以获取有关执行此任务的说明。

  2. 如果您的 CNAME 记录无法解析,请确认 CNAME 您的域名提供商的DNS设置中存在条目。

    重要

    请务必更新您的 CNAME 在您创建自定义域名后立即记录。在 Amplify 控制台中创建您的应用程序后,您的 CNAME 每隔几分钟检查一次记录,以确定它是否可以解析。如果一小时后仍未解决,则每隔数小时进行一次检查,这可能会导致您的域名在准备好使用方面会有所延迟。如果您添加或更新了您的 CNAME 在您创建应用程序几小时后记录,这是您的应用程序陷入待验证状态的最可能原因。

  3. 如果你已经证实了 CNAME 记录存在,那么您的提供DNS商可能存在问题。您可以联系DNS提供商来诊断DNS验证原因 CNAME 无法解决问题,或者您可以将您的迁移DNS到 Route 53。有关更多信息,请参阅将 Amazon Route 53 作为现有域的DNS服务

我在 Amazon Route 53 托管的域卡在了等待验证状态

如果您将域转移到 Amazon Route 53,则您的域可能与创建应用程序时由 Amplify 发布的名称服务器不同。执行以下步骤诊断出错的原因。

  1. 登录 Amazon Route 53 控制台

  2. 在导航窗格中,选择托管区域,然后选择要连接的域的名称。

  3. 记录托管区域详细信息部分中的名称服务器值。您需要这些值来完成下一步。以下 Route 53 控制台屏幕截图在右下角处显示了名称服务器值的位置。

    Route 53 控制台中的托管区域详细信息部分显示了域名服务器的值。
  4. 在导航窗格中,选择 Registered domains。验证已注册域部分显示的名称服务器是否与您在上一步中在托管区域详细信息部分中记录的名称服务器值一致。如果不一致,请编辑名称服务器值,使其与托管区域中的值一致。以下 Route 53 控制台屏幕截图在右侧显示了名称服务器值的位置。

    Route 53 控制台的 “已注册域名” 部分显示域名服务器的值。
  5. 如果这不能解决问题,请联系 AWS Support。 有关更多信息,请参阅中的创建支持案例 AWS Support 用户指南

我收到一个CNAMEAlreadyExistsException错误

如果您遇到CNAMEAlreadyExistsException错误,则表示您尝试连接的其中一个主机名(子域名或顶点域)已部署到另一个 Ama CloudFront zon 分发中。执行以下步骤诊断出错的原因。

  1. 登录 Amazon CloudFront 控制台并确认您没有将此域部署到任何其他分配。单曲 CNAME 一次可以将记录附加到一个 CloudFront 发行版中。

  2. 如果您之前已将该域部署到 CloudFront 分配中,则必须将其删除。

    1. 在左侧导航菜单中,选择分发

    2. 选择要编辑的分发的名称。

    3. 选择通用选项卡。在 Settings(设置)部分中,选择 Edit(编辑)。

    4. 备用域名 (CNAME) 中删除域名。然后选择保存更改

  3. 查看此域是否与您拥有的其他 Amplify 应用程序相关联。如果是,请确保您没有尝试重用其中一个主机名。如果您将 www.example.com 用于其他应用程序,则 www.example.com 不能与当前正在连接的应用程序一起使用。您可以使用其他子域,例如 blog.example.com

  4. 如果该域曾成功连接到其他应用程序,然后在过去一小时内被删除,请至少在一小时后重试。如果 6 小时后仍看到此异常,请联系 AWS Support。 有关更多信息,请参阅中的创建支持案例 AWS Support 用户指南

我收到需要额外验证错误

如果您收到 “需要额外验证” 错误,这意味着 AWS Certificate Manager (ACM) 需要其他信息来处理此证书申请。这可以用作防止欺诈措施,例如域名位于 Alexa 1000 强网站中时。要提供所需信息,请使用 Su pport Center 联系 AWS Support。 如果您没有支持计划,请在ACM讨论论坛中发布新话题。

注意

您无法为 Amazon 拥有的域名 (例如以 amazonaws.com、cloudfront.net 或 elasticbeanstalk.com 结尾的域名) 请求证书。

我收到了 404 错误 CloudFront URL

为了提供流量,Amplify Hosting 指向了 CloudFront URL通过记录。CNAME在将应用程序连接到自定义域的过程中,Amplify 控制台会显示该应用程序 CloudFrontURL的。但是,您不能使用它直接访问您的应用程序 CloudFrontURL。它会返回 404 错误。您的应用只能使用 Amplify URL 应用程序(例如https://main.d5udybEXAMPLE.amplifyapp.com)或您的自定义域名(例如)进行www.example.com解析。

Amplify 需要将请求路由到正确部署的分支,并使用主机名称来执行此操作。例如,您可以配置指向应用程序主线分支的域 www.example.com,也可以配置指向相同应用程序开发分支的域 dev.example.com。因此,您必须根据应用程序的配置子域来访问您的应用程序,这样 Amplify 才能相应地路由请求。

我在访问我的域名时收到SSL证书或HTTPS出现错误

如果您在第三方DNS提供商处配置了证书颁发机构授权 (CAA) DNS 记录, AWS Certificate Manager (ACM) 可能无法更新或补发您的自定义域证书的中间SSL证书。要解决这个问题,您需要添加一条CAA记录以信任至少一个亚马逊的证书颁发机构域。以下过程描述了您需要执行的步骤。

添加CAA记录以信任 Amazon 证书颁发机构
  1. 向您的域名提供商配置CAA记录,以信任至少一个亚马逊的证书颁发机构域。有关配置CAA记录的更多信息,请参阅中的证书颁发机构授权 (CAA) 问题 AWS Certificate Manager 用户指南

  2. 使用以下方法之一更新您的SSL证书: