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

自定义域问题排查

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

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

我需要验证我的 CNAME 别名记录是否已解析

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

    whatsmydns.net 应用程序,您可以在其中输入要查看的网站名称。
  2. 选择搜索whatsmydns.net 会显示您的别名记录结果。以下屏幕截图例举了验证别名记录是否正确解析为 cloudfront.net 网址的结果列表。

    whatsmydns.net 应用程序显示了解析 CNAME 别名记录的结果。

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

  1. 如果您的自定义域陷入待验证状态,请验证您的 CNAME 记录是否正在解析。有关执行此任务的说明,请参阅之前的问题排查主题如何验证我的 CNAME 解析

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

    重要

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

  3. 如果已确认 CNAME 记录存在,那么您的 DNS 提供商可能存在问题。您可以联系 DNS 提供商,来诊断 DNS 验证 CNAME 未解析的原因,也可以将 DNS 迁移到 Route53。有关更多信息,请参阅将 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 错误,表示您尝试连接的主机名称之一(子域或顶级域)已部署到另一个 Amazon CloudFront 分发中。执行以下步骤诊断出错的原因。

  1. 登录 Amazon CloudFront 控制台,确认您没有将此域部署到其他任何分发中。一次只能将一个 CNAME 记录附加到 CloudFront 分配。

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

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

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

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

    4. 备用域名 (ANAME) 中移除此域名。然后选择保存更改

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

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

我收到需要额外验证错误

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

注意

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

我在 CloudFront 网址上收到 404 错误

为了提供流量,Amplify Hosting 通过别名记录指向 CloudFront 网址。在将应用程序连接到自定义域的过程中,Amplify 控制台会显示该应用程序的 CloudFront 网址。但是,您不能使用此 CloudFront 网址直接访问您的应用程序。它会返回 404 错误。您的应用程序只能使用 Amplify 应用网址(例如 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 记录来信任 Amazon 证书颁发机构的至少一个域。以下过程描述了您需要执行的步骤。

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

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