

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 對自訂網域進行故障診斷
<a name="troubleshooting-custom-domains"></a>

如果您在將自訂網域連線至 Amplify 應用程式時遇到問題，請參閱本節中的主題以取得協助。

如果您在這裡找不到問題的解決方案，請聯絡 支援。如需詳細資訊，請參閱 *AWS 支援 使用者指南*中的[建立支援案例](https://docs.aws.amazon.com/awssupport/latest/user/case-management.html#creating-a-support-case)。

**Topics**
+ [我需要驗證我的 CNAME 是否解析](#how-do-i-verify-that-my-cname-resolves)
+ [由第三方託管的網域卡在待驗證狀態](#my-domain-hosted-with-a-third-party-is-stuck-in-the-pending-verification-state)
+ [使用 Amazon Route 53 託管的網域停滯在待驗證狀態](#my-domain-hosted-with-amazon-route-53-is-stuck-in-the-pending-verification-state)
+ [具有多層級子網域的應用程式卡在待驗證狀態](#multilevel-domain-is-stuck-in-the-pending-verification-state)
+ [我的 DNS 供應商不支援具有完整網域名稱的記錄](#FQDN-A-recored-unsupported)
+ [我收到 CNAMEAlreadyExistsException 錯誤](#i-get-a-cnamealreadyexistsexception-error)
+ [我收到其他需要驗證的錯誤](#i-get-an-additionalverificationrequired-error)
+ [我在 CloudFront URL 上收到 404 錯誤](#i-get-a-404-cloudfront-url)
+ [我在造訪我的網域時收到 SSL 憑證或 HTTPS 錯誤](#ssl-HTTPS-errors-on-domain)
+ [網域重新導向中不支援的路徑元件](#domain-redirects-path-components)
+ [我收到跨帳戶網域關聯的 400 錯誤](#cross-account-domain-association-400-error)

## 我需要驗證我的 CNAME 是否解析
<a name="how-do-i-verify-that-my-cname-resolves"></a>

1. 使用第三方網域提供者更新 DNS 記錄後，您可以使用 [dig](https://en.wikipedia.org/wiki/Dig_(command)) 等工具或 [https://www.whatsmydns.net/](https://www.whatsmydns.net/) 等免費網站，以確認您的 CNAME 記錄已正確解析。下列螢幕擷取畫面示範如何使用 whatsmydns.net 來檢查網域 **www.example.com** 的 CNAME 記錄。  
![\[whatsmydns.net 應用程式，您可以在其中輸入要檢查的網站名稱。\]](http://docs.aws.amazon.com/zh_tw/amplify/latest/userguide/images/amplify-troubleshooting-whatsmydns-1Update.png)

1. 選擇**搜尋**， **whatsmydns.net**會顯示 CNAME 的結果。下列螢幕擷取畫面是結果清單的範例，可驗證 CNAME 是否正確解析為 cloudfront.net URL。  
![\[whatsmydns.net 應用程式顯示解析 CNAME 的結果。\]](http://docs.aws.amazon.com/zh_tw/amplify/latest/userguide/images/amplify-troubleshooting-whatsmydns-2Update.png)

## 由第三方託管的網域卡在待驗證狀態
<a name="my-domain-hosted-with-a-third-party-is-stuck-in-the-pending-verification-state"></a>

1. 如果您的自訂網域卡在**待驗證**狀態，請確認您的CNAME記錄正在解析。如需執行此任務的說明，請參閱先前的疑難排解主題：[如何驗證我的 已CNAME解決](#how-do-i-verify-that-my-cname-resolves)。

1. 如果您的CNAME記錄未解析，請向網域提供者確認該CNAME項目存在於您的 DNS 設定中。
**重要**  
 建立自訂網域後，請務必立即更新您的CNAME記錄。在 Amplify 主控台中建立應用程式後，每隔幾分鐘會檢查您的CNAME記錄，以判斷是否解析。如果一小時後仍未解決，則會每隔幾個小時進行檢查，這可能會導致您的網域延遲可供使用。如果您在建立應用程式數小時後新增或更新CNAME記錄，這最有可能讓您的應用程式卡在**待驗證**狀態。

1. 如果您已驗證CNAME記錄是否存在，則 DNS 供應商可能有問題。您可以聯絡 DNS 供應商來診斷 DNS 驗證CNAME未解決的原因，也可以將 DNS 遷移至 Route 53。如需詳細資訊，請參閱[將 Amazon Route 53 設為現有網域的 DNS 服務](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/MigratingDNS.html)。

## 使用 Amazon Route 53 託管的網域停滯在待驗證狀態
<a name="my-domain-hosted-with-amazon-route-53-is-stuck-in-the-pending-verification-state"></a>

如果您將網域轉移到 Amazon Route 53，您的網域可能會有與建立應用程式時由 Amplify 發行的不同名稱伺服器。執行下列步驟來診斷錯誤的原因。

1. 登入 [Amazon Route 53 主控台](https://console.aws.amazon.com/route53/home)

1. 在導覽窗格中，選擇**託管區域**，然後選擇您要連線的網域名稱。

1. 從**託管區域詳細資訊**區段記錄名稱伺服器值。您需要這些值才能完成下一個步驟。下列 Route 53 主控台螢幕擷取畫面會在右下角顯示名稱伺服器值的位置。  
![\[Route 53 主控台中的託管區域詳細資訊區段，顯示名稱伺服器值。\]](http://docs.aws.amazon.com/zh_tw/amplify/latest/userguide/images/1555952748759-111.png)

1. 在導覽窗格中，選擇 **Registered domains (已註冊的網域)**。確認已**註冊網域**區段上顯示的名稱伺服器符合您在上一個步驟的**託管區域詳細資訊**區段中記錄的名稱伺服器值。如果不相符，請編輯名稱伺服器值，以符合**託管區域中**的值。下列 Route 53 主控台螢幕擷取畫面會在右側顯示名稱伺服器值的位置。  
![\[Route 53 主控台的已註冊網域區段，顯示名稱伺服器值。\]](http://docs.aws.amazon.com/zh_tw/amplify/latest/userguide/images/1555952748759-607.png)

1. 如果這無法解決問題，請聯絡 支援。如需詳細資訊，請參閱 *AWS 支援 使用者指南*中的[建立支援案例](https://docs.aws.amazon.com/awssupport/latest/user/case-management.html#creating-a-support-case)。

## 具有多層級子網域的應用程式卡在待驗證狀態
<a name="multilevel-domain-is-stuck-in-the-pending-verification-state"></a>

如果具有多層級子網域的應用程式在連線至第三方 DNS 供應商時卡在**待驗證**狀態，則 DNS 記錄的格式可能有問題。有些 DNS 供應商會自動將第二層網域 (SLD) 和最上層網域 (TLD) 網域尾碼新增至您的記錄。如果您也以包含 SLD 和 TLD 的格式指定網域，這可能會導致網域驗證問題。

當您連接網域時，請先嘗試使用 Amplify 提供的完整格式指定網域名稱，例如 `_hash.docs.backend.example.com`。如果 SSL 組態卡在**待驗證**狀態，請嘗試從記錄中移除 TLD 和 SLD。例如，如果完整格式為 `_hash.docs.backend.example.com`，請指定 `_hash.docs.backend`。等待 15 到 30 分鐘，讓記錄傳播。然後使用 MX Toolbox 等工具來檢查驗證程序是否正常運作。

## 我的 DNS 供應商不支援具有完整網域名稱的記錄
<a name="FQDN-A-recored-unsupported"></a>

有些 DNS 供應商不支援具有完整網域名稱 (FQDN) 的記錄，例如 `example.cloudfront.net`。例如，Cloudflare A records 只能寫入IPv4地址，不支援 FQDNs。若要解決此限制，建議您在DNS組態A records中使用CNAME記錄，而非 。

例如，下列DNS組態使用 A record。

```
A     | @ | ***.cloudfront.net
CNAME | www | ***.cloudfront.net
```

將其變更為下列DNS組態，以僅使用CNAME記錄。

```
CNAME | @ | ***.cloudfront.net  
CNAME | www | ***.cloudfront.net
```

此解決方法可讓您將頂點網域 (@ 記錄） 正確指向 CloudFront 等服務，同時避免 Cloudflare A records 系統中IPv4-only 的限制。

## 我收到 CNAMEAlreadyExistsException 錯誤
<a name="i-get-a-cnamealreadyexistsexception-error"></a>

如果您收到 **CNAMEAlreadyExistsException** 錯誤，這表示您嘗試連線的其中一個主機名稱 （子網域或頂點網域） 已部署到另一個 Amazon CloudFront 分佈。錯誤來源取決於您目前的託管和 DNS 供應商。

別名，例如 CNAME `example.com`或 `sub.example.com` 一次只能與單一 CloudFront 分佈相關聯。**CNAMEAlreadyExistsException** 表示您的網域已與另一個 CloudFront 分佈建立關聯，無論是在相同或 AWS 帳戶可能在不同帳戶中。網域必須與先前的 CloudFront 分佈取消關聯，Amplify Hosting 建立的新分佈才能運作。如果您或組織擁有多個 AWS 帳戶，您可能需要檢查多個帳戶。

執行下列步驟來診斷 **CNAMEAlreadyExistsException** 錯誤的原因。

1. 登入 [Amazon CloudFront 主控台](https://console.aws.amazon.com/cloudfront/home?#)，並確認沒有將此網域部署到另一個分佈。單一CNAME記錄一次可以連接到一個 CloudFront 分佈。

1. 如果您之前已將網域部署到 CloudFront 分佈，則必須將其移除。

   1. 在左側導覽功能表中選擇**分佈**。

   1. 選取要編輯的分佈名稱。

   1. 選擇**一般**索引標籤。在 **Settings** (設定) 區段中，選擇 **Edit** (編輯)。

   1. 從**備用網域名稱 (CNAME) 中移除網域名稱**。然後選擇**儲存變更**。

1. 確認目前 AWS 帳戶 或其他 中沒有使用此網域的其他 CloudFront 分佈 AWS 帳戶。如果它不會中斷任何目前正在執行的服務，請嘗試刪除並重新建立託管區域。

1. 檢查此網域是否連接到您擁有的不同 Amplify 應用程式。若是如此，確定您不是嘗試重複使用其中一個主機名稱。如果您將 `www.example.com`用於另一個應用程式，則無法將 `www.example.com`與您目前連線的應用程式搭配使用。您可以使用其他子網域，例如 `blog.example.com`。

1. 如果此網域已成功連線至另一個應用程式，然後在前一個小時內刪除，請在至少一小時過後再試一次。如果您在 6 小時後仍看到此例外狀況，請聯絡 支援。如需詳細資訊，請參閱 *AWS 支援 使用者指南*中的[建立支援案例](https://docs.aws.amazon.com/awssupport/latest/user/case-management.html#creating-a-support-case)。

1. 如果您透過 Route 53 管理您的網域，請務必清除指向舊 CloudFront 分佈的任何託管區域CNAME或ALIAS記錄。

1. 完成上述步驟後，從 Amplify 託管移除自訂網域，然後重新開始工作流程，以在 Amplify 主控台中連接自訂網域。

## 我收到其他需要驗證的錯誤
<a name="i-get-an-additionalverificationrequired-error"></a>

如果您收到**其他必要驗證**錯誤，這表示 AWS Certificate Manager (ACM) 需要其他資訊才能處理此憑證請求。詐騙防護措施可能會發生此情況，例如，當網域排名在 [Alexa 前 1000 名網站](https://aws.amazon.com/marketplace/pp/Amazon-Web-Services-Alexa-Top-Sites/B07QK2XWNV)時。為了提供此資訊，請使用[支援中心](https://console.aws.amazon.com/support/home)聯絡 支援。如果您沒有支援方案，請在 [ACM 開發論壇](https://forums.aws.amazon.com/forum.jspa?forumID=206)中張貼新的討論主題。

**注意**  
您無法為 Amazon 擁有的網域名稱請求憑證，例如結尾為 amazonaws.com、cloudfront.net 或 elasticbeanstalk.com 的網域名稱。

## 我在 CloudFront URL 上收到 404 錯誤
<a name="i-get-a-404-cloudfront-url"></a>

為了提供流量，Amplify 託管會透過 CNAME 記錄指向 CloudFront URL。在將應用程式連線至自訂網域的過程中，Amplify 主控台會顯示應用程式的 CloudFront URL。不過，您無法使用此 CloudFront URL 直接存取您的應用程式。它傳回 404 錯誤。您的應用程式只會使用 Amplify 應用程式 URL （例如 `https://main.d5udybEXAMPLE.amplifyapp.com`或您的自訂網域 （例如 `www.example.com`) 來解析 。

Amplify 需要將請求路由到正確的部署分支，並使用主機名稱來執行此操作。例如，您可以設定`www.example.com`指向應用程式主線分支的網域，也可以設定`dev.example.com`指向相同應用程式開發分支的網域。因此，您必須根據應用程式設定的子網域來造訪應用程式，以便 Amplify 可以相應地路由請求。

## 我在造訪我的網域時收到 SSL 憑證或 HTTPS 錯誤
<a name="ssl-HTTPS-errors-on-domain"></a>

如果您使用第三方 DNS 供應商設定憑證授權機構授權 (CAA) DNS 記錄， AWS Certificate Manager (ACM) 可能無法更新或重新發行自訂網域 SSL 憑證的中繼憑證。若要解決此問題，您需要新增 CAA 記錄來信任至少一個 Amazon 憑證授權單位網域。下列程序說明您需要執行的步驟。

**新增 CAA 記錄以信任 Amazon 憑證授權單位**

1. 與您的網域提供者設定 CAA 記錄，以信任至少一個 Amazon 的憑證授權單位網域。如需設定 CAA 記錄的詳細資訊，請參閱*AWS Certificate Manager 《 使用者指南*》中的[憑證授權機構授權 (CAA) 問題](https://docs.aws.amazon.com/acm/latest/userguide/troubleshooting-caa.html)。

1. 使用下列其中一種方法來更新您的 SSL 憑證：
   + 使用 Amplify 主控台手動更新。
**注意**  
此方法將導致自訂網域的停機時間。

     1. 登入 AWS 管理主控台 並開啟 [Amplify 主控台](https://console.aws.amazon.com/amplify/)。

     1. 選擇您要新增 CAA 記錄的應用程式。

     1. 在導覽窗格中，選擇**應用程式設定**、**網域管理**。

     1. 在**網域管理**頁面上，刪除自訂網域。

     1. 再次將您的應用程式連線至自訂網域。此程序會發出新的 SSL 憑證，且其中繼憑證現在可以由 ACM 管理。

        若要將應用程式重新連線至您的自訂網域，請使用下列其中一個對應至您正在使用的網域提供者的程序。
        + [新增由 Amazon Route 53 管理的自訂網域](to-add-a-custom-domain-managed-by-amazon-route-53.md).
        + [新增由第三方 DNS 供應商管理的自訂網域](to-add-a-custom-domain-managed-by-a-third-party-dns-provider.md).
        + [更新由 GoDaddy 管理之網域的 DNS 記錄](to-add-a-custom-domain-managed-by-godaddy.md).
   + 請聯絡 支援 以重新發行您的 SSL 憑證。

## 網域重新導向中不支援的路徑元件
<a name="domain-redirects-path-components"></a>

網域重新導向僅符合主機名稱部分。不支援以網域為基礎的來源規則 （例如 `"https://domain.com/path"`) 中的路徑元件，這會導致規則被忽略而不會發生錯誤。如需詳細資訊，請參閱[重新導向和重寫範例參考](redirect-rewrite-examples.md)。

## 我收到跨帳戶網域關聯的 400 錯誤
<a name="cross-account-domain-association-400-error"></a>

為 Amplify 應用程式啟動 DomainAssociation (Amplify 應用程式） 請求時，如果網域已經或先前已與相同區域中其他 AWS 帳戶中的不同 Amplify 應用程式相關聯，則這會被視為跨帳戶網域關聯。如果您收到此錯誤，表示您正在嘗試跨帳戶網域關聯，這需要手動驗證。如果您想要繼續進行跨帳戶網域關聯，請聯絡 AWS Support 尋求協助。