View a markdown version of this page

疑難排解 ACME 憑證自動化 - AWS Certificate Manager

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

疑難排解 ACME 憑證自動化

本節說明 ACME 憑證自動化的常見問題,以及如何解決這些問題。

ACME 失敗未出現在主控台監控索引標籤中

ACM 主控台 ACME 端點詳細資訊頁面上的監控索引標籤會顯示 ACM 建立憑證時憑證發行最後一個步驟的事件 (請參閱 監控 ACME 端點)。如果您的請求在該步驟之前失敗,則不會出現。

某些失敗會在程序稍早發生,例如無效的登入資料、未驗證的網域,或端點不允許的網域。您的 ACME 用戶端會直接收到這些失敗。

若要診斷這些失敗,請使用下列其中一個選項:

  • 檢查您的 ACME 用戶端日誌 — ACME 用戶端會記錄伺服器傳回的確切錯誤。如需其日誌檔案的位置,請參閱用戶端的文件。

  • 啟用 CloudTrail 資料事件 - 若要集中檢視您 AWS 帳戶中所有 ACME 活動以進行偵錯或稽核,請啟用 ACM ACME 端點的 CloudTrail 資料事件記錄。如需這些事件的詳細資訊,請參閱 資料事件

網域驗證不會生效

ACME 端點只能在網域的驗證達到 VALID 狀態後,才能發行網域的憑證。如果網域驗證保留在 中VALIDATING或變成 INVALID,請檢查下列項目:

  • 確認您已佈建 CNAME 記錄,如網域驗證詳細資訊所示,包括記錄名稱和值。若要檢視所需的記錄,請使用 DescribeAcmeDomainValidation或 ACM 主控台。

  • 如果您提供 Route 53 託管區域進行自動記錄管理,請確認託管區域 ID 正確無誤,且 ACM 可以存取該區域。

DescribeAcmeDomainValidation 會報告失敗原因,指出原因:

  • ACCESS_DENIEDACM 無法存取託管區域來驗證或建立記錄。

  • DOMAIN_MISMATCHCNAME 記錄不符合預期值。

  • HOSTED_ZONE_NOT_FOUND找不到指定的託管區域。

  • TIMED_OUT未在允許時間內偵測到記錄。確認記錄已在 DNS 中傳播。

  • INTERNAL_FAILURE發生內部錯誤。請再試一次,如果問題仍然存在,請聯絡 AWS Support。

如需詳細資訊,請參閱ACME 網域驗證

憑證發行或撤銷失敗,拒絕存取

ACM 使用與用戶端外部帳戶繫結 (EAB) 相關聯的 IAM 角色來授權發行和撤銷。如果這些操作因存取遭拒錯誤而失敗,請檢查下列項目:

  • 角色的信任政策允許 ACME 服務主體 (acm-acme.amazonaws.com) 執行 sts:AssumeRolests:TagSessionsts:SetSourceIdentity。如果您新增 sts:SourceIdentitysts:RoleSessionName條件,請確認它允許 ACM 使用的值。

  • 角色授予 acm:RequestCertificate 以發行或acm:RevokeCertificate撤銷。

  • 無 AWS Organizations 服務控制政策 (SCP) 拒絕操作。SCPs會在發行時強制執行。

如需詳細資訊,請參閱ACME 憑證自動化的 IAM

憑證請求遭拒

如果 ACME 用戶端的憑證請求遭到拒絕,請檢查下列項目:

  • 請求的網域由端點上VALID狀態為 的網域驗證所涵蓋,而驗證的範圍 (確切網域、子網域或萬用字元) 允許請求的名稱。如需詳細資訊,請參閱網域驗證範圍

  • 憑證的金鑰演算法是端點允許的金鑰演算法之一。如需詳細資訊,請參閱端點組態

在網域驗證之前有效之後,憑證發行失敗並出現 DNS CNAME 錯誤

ACME 網域驗證要求只要驗證正在使用,其 CNAME 記錄就必須保留在 DNS 中。如果在網域驗證達到VALID狀態後移除 CNAME,即使先前已確認網域驗證資源本身,該網域的憑證訂單仍可能會在發行時失敗。

發生這種情況時,ACME 用戶端會看到訂單轉換為invalid狀態,而訂單error的欄位會攜帶 typedetailurn:ietf:params:acme:error:dns其名稱為無法解析的 CNAME 記錄。例如:

{ "status": "invalid", "error": { "type": "urn:ietf:params:acme:error:dns", "detail": "DNS CNAME records not found: [_a1b2c3d4e5f67890abcdef1234567890.example.com.]" }, "identifiers": [{ "type": "dns", "value": "example.com" }], "authorizations": ["https://acm-acme-enroll.region.api.aws/00000000-0000-0000-0000-000000000000/authz/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111"], "finalize": "https://acm-acme-enroll.region.api.aws/00000000-0000-0000-0000-000000000000/order/a1b2c3d4-5678-90ab-cdef-EXAMPLE22222/finalize", "expires": "2026-06-18T13:49:02Z" }

ACME 用戶端會在自己的輸出中顯示訂單的錯誤。例如,Certbot 結束時出現下列錯誤:

An unexpected error occurred: DNS CNAME records not found: [_a1b2c3d4e5f67890abcdef1234567890.example.com.]

如果您已設定 CloudTrail 追蹤或事件資料存放區來記錄 ACM 資料事件,則失敗也會出現在 下的 IssueCertificate CloudTrail 事件上serviceEventDetails,且具有相同的 errorTypeerrorMessage。如需詳細資訊,請參閱CloudTrail 記錄中支援的 ACM API 動作

若要解決此問題,請還原錯誤中列出的 CNAME 記錄。若要尋找網域驗證的預期 CNAME,請使用 DescribeAcmeDomainValidation或在 ACM 主控台中檢視網域驗證。

帳戶註冊失敗

當 ACME 用戶端向端點註冊帳戶時,請檢查下列項目:

  • 用戶端會在註冊期間提供外部帳戶繫結 (EAB) 登入資料 (金鑰識別符和 HMAC 金鑰)。端點需要這些登入資料。

  • 如果端點需要聯絡資訊,用戶端會在註冊期間提供聯絡人電子郵件地址。如需詳細資訊,請參閱外部帳戶繫結

ACME 用戶端等待憑證逾時

透過 ACM ACME 端點發行憑證最多可能需要兩分鐘。如果您的 ACME 用戶端在收到憑證之前逾時,請將用戶端的發行逾時增加到至少 120 秒 (2 分鐘)。

對於 Certbot,請使用 --issuance-timeout旗標:

certbot certonly --issuance-timeout 120 ...

對於其他 ACME 用戶端,請參閱您用戶端的文件以取得同等的逾時組態。