View a markdown version of this page

ACME 網域驗證 - AWS Certificate Manager

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

ACME 網域驗證

ACME 網域驗證資源會預先授權 ACME 端點可以發行憑證的網域。與標準 ACM 網域驗證 (您在憑證請求中設定) 不同,ACME 網域驗證是 PKI 管理員事先設定的持久性資源。此區隔可讓應用程式擁有者請求憑證,而不必自行執行網域驗證。

每個網域驗證都需要 DNS 中的 CNAME 記錄。這是用於標準 ACM DNS 驗證的相同 CNAME 記錄類型。不過,ACME 網域驗證專屬於個別端點。不同的端點需要單獨的 CNAME 記錄,即使對於相同的網域也是如此。

ACME 網域驗證與標準 ACM 驗證有何關聯

這兩種機制都使用相同的 CNAME 記錄格式和用途:透過在 DNS 中放置特定記錄來證明網域擁有權,如中所述AWS Certificate Manager DNS 驗證。在這兩種情況下,CNAME 會將持續的網域驗證委派給 ACM。由於記錄指向 ACM 管理的目標,ACM 可以在一段時間內重新驗證網域擁有權,而無需您採取進一步動作。這可讓 ACM 自動續約憑證。下列清單說明主要差異:

  • 使用標準 ACM 驗證,您可以將 CNAME 建立為憑證請求的一部分,例如呼叫 RequestCertificate

  • ACME 網域驗證是管理員預先設定的持久性 ACM 資源,不受任何個別憑證請求影響。

  • ACME 網域驗證包含可設定的範圍,可讓您控制端點是否可以發行確切網域、其子網域或萬用字元名稱的憑證。如需詳細資訊,請參閱網域驗證範圍

網域驗證範圍

當您建立網域驗證時,您可以設定控制使用此驗證可以發行哪些憑證的範圍。範圍有三個獨立設定。如需 apex 網域子網域的定義,請參閱 網域名稱

ExactDomain (ENABLED/DISABLED)

允許您指定之確切網域的憑證。例如,如果您指定頂點網域 example.com,此設定會允許 的憑證example.com

Subdomains (ENABLED/DISABLED)

允許您指定之網域的子網域憑證 (例如, www.example.comapi.example.com)。

Wildcards (ENABLED/DISABLED)

允許您指定網域的萬用字元憑證 (例如 *.example.com)。

您可以合併這些設定。下表顯示範例範圍組合。

網域驗證範圍組合
DomainName ExactDomain 子網域 萬用字元 允許憑證
example。com ENABLED DISABLED DISABLED 僅限 example.com
example。com DISABLED ENABLED DISABLED sub.example.com、api.example.com 等
example。com DISABLED DISABLED ENABLED 僅限 *.example.com
example。com ENABLED ENABLED ENABLED example.com、任何子網域和 *.example.com
internal.example.com ENABLED ENABLED DISABLED internal.example.com 及其子網域

狀態生命週期

建立網域驗證之後,ACM 會嘗試驗證 CNAME 記錄長達 72 小時。如果在此期間內未偵測到記錄,網域驗證會轉換為 INVALID 狀態。請務必在建立網域驗證之後,立即佈建 CNAME 記錄。

ACME 網域驗證會轉換下列狀態:

VALIDATING

正在驗證 CNAME 記錄。ACM 會嘗試驗證記錄長達 72 小時。如果在此期間內未確認記錄,狀態會轉換為INVALID具有TIMED_OUT失敗原因的 。

VALID

已確認 CNAME 記錄。網域驗證處於作用中狀態,可用於發行。

INVALID

CNAME 記錄驗證失敗。請參閱下列失敗原因。

DELETING

正在移除網域驗證。

失敗原因

ACCESS_DENIED

驗證 DNS 記錄的許可不足。

DOMAIN_MISMATCH

CNAME 記錄不符合預期值。

HOSTED_ZONE_NOT_FOUND

找不到指定的託管區域。

INTERNAL_FAILURE

發生內部錯誤。再次嘗試建立網域驗證。

DOMAIN_NOT_ALLOWED

網域不允許發行。網域可能列在限制清單上,也可能不符合發行要求。

CAA_ERROR

憑證授權機構授權 (CAA) DNS 記錄可防止 ACM 為此網域發出 。確保您的 CAA 記錄允許 Amazon 發行憑證。

TIMED_OUT

未在 72 小時內偵測到 CNAME 記錄。確認記錄已在 DNS 中傳播,且完全符合預期的名稱和值。

建立網域驗證

您可以使用 ACM 主控台或 AWS CLI 建立 ACME 網域驗證。

建立網域驗證 (主控台)

  1. 登入 AWS 管理主控台並開啟 ACM 主控台。

  2. 在左側導覽窗格的 ACME 下,選擇端點

  3. 選取要設定的端點。

  4. 選擇網域索引標籤。

  5. 選擇新增網域

  6. 針對網域名稱,輸入網域名稱 (例如 example.com)。

  7. 設定確切網域、子網域和萬用字元的範圍設定。

  8. (選用) 針對託管區域 ID,輸入 Route 53 託管區域 ID 以進行自動 CNAME 佈建。

  9. (選用) 在標籤下,將一或多個標籤新增至網域組態。

  10. 選擇新增網域組態

  11. 如果您未使用 Route 53 自動佈建,請在 DNS 中佈建 CNAME 記錄。所需的 CNAME 名稱和值會顯示在網域組態詳細資訊中。

  12. 等待狀態變更為 VALID

建立網域驗證 (AWS CLI)

執行下列命令來建立 ACME 網域驗證:

aws acm create-acme-domain-validation \ --acme-endpoint-arn arn:aws:acm:region:111122223333:acme-endpoint/00000000-0000-0000-0000-000000000000 \ --domain-name example.com \ --prevalidation-options '{ "DnsPrevalidation": { "DomainScope": { "ExactDomain": "ENABLED", "Subdomains": "ENABLED", "Wildcards": "DISABLED" }, "HostedZoneId": "Z1234567890" } }'

若要檢查狀態並取得 CNAME 詳細資訊,請執行下列命令:

aws acm describe-acme-domain-validation \ --acme-domain-validation-arn arn:aws:acm:region:111122223333:acme-endpoint/00000000-0000-0000-0000-000000000000/acme-domain-validation/11111111-1111-1111-1111-111111111111

管理網域驗證

您可以在 ACME 網域驗證上執行下列管理操作:

描述

檢視狀態和 CNAME 記錄詳細資訊。

清單

檢視端點的所有網域驗證。

更新

修改範圍組態。

刪除

移除網域驗證。已發行的憑證不會受到影響。