最佳實務 - AWS Certificate Manager

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

最佳實務

最佳做法是可以幫助您更有效地使用 AWS Certificate Manager (AWS Certificate Manager) 的建議。以下最佳實務是根據目前 ACM 客戶的實際體驗。

AWS CloudFormation

AWS CloudFormation 您可以使用建立描述要使用之 AWS 資源的範本。 AWS CloudFormation 然後為您佈建和配置這些資源。 AWS CloudFormation 可以佈建 ACM 支援的資源,例如 Elastic Load Balancing CloudFront、亞馬遜和 Amazon API 閘道。如需詳細資訊,請參閱 服務整合 AWS Certificate Manager

如果您使 AWS CloudFormation 用快速建立和刪除多個測試環境,建議您不要為每個環境建立個別的 ACM 憑證。這樣做會快速用盡您的憑證配額。如需詳細資訊,請參閱 配額。反之,建立一個涵蓋所有用於測試之網域名稱的萬用字元憑證。例如,如果您要重複為只有版本編號不同的網域名稱建立 ACM 憑證,像是 <version>.service.example.com,則請改為 <*>.service.example.com 建立單一萬用字元憑證。在用來建立測試環境的範本中包含萬 AWS CloudFormation 用字元憑證。

憑證關聯

憑證關聯 (有時稱為 SSL 關聯) 是一個程序,可讓您在應用程式中直接與 X.509 憑證或公開金鑰關聯遠端主機來驗證該主機,而不是使用憑證階層。因此,應用程式會使用關聯來繞過 SSL/TLS 憑證鏈驗證。典型的 SSL 驗證程序會檢查整個憑證鏈的簽章,從根憑證授權機構 (CA) 憑證到次級 CA 憑證 (如果有)。還會在階層底部檢查遠端主機的憑證。反之,您的應用程式可以關聯至遠端主機的憑證,以表示只有該憑證受信任,而不信任根憑證或任何其他憑證鏈中的憑證。您可以在開發期間將遠端主機的憑證或公開金鑰新增至應用程式。應用程式也可以在第一次連線到主機時新增憑證或金鑰。

警告

我們建議應用程式不要關聯 ACM 憑證。ACM 會執行 ACM 憑證的受管理續約 以在憑證過期前自動續約 Amazon 發行的 SSL/TLS 憑證。為了續約憑證,ACM 會產生新的公私有金鑰對。如果您的應用程式關聯 ACM 憑證,而且成功使用新的公有金鑰續約憑證,則應用程式可能會無法連線到網域。

如果您決定關聯憑證,以下選項不會阻礙應用程式連線到您的網域:

  • 將自己的憑證匯入 ACM,然後將應用程式關聯至匯入的憑證。ACM 不會嘗試自動續約匯入的憑證。

  • 如果您使用的是公有憑證,請將應用程式釘選到所有可用的 Amazon 根憑證。如果您使用的是私有憑證,請將您的應用程式釘選到 CA 根憑證。

網域驗證

Amazon 憑證授權單位 (CA) 才能為您的網站發行憑證, AWS Certificate Manager (ACM) 必須先確認您擁有或控制您在請求中指定的所有網域。您可以使用電子郵件或 DNS 執行驗證。如需更多詳細資訊,請參閱「DNS 驗證」及「電子郵件驗證」。

新增或刪除網域名稱

您無法從現有 ACM 憑證新增或移除網域名稱。反之,您必須使用修訂的網域名稱清單申請新憑證。例如,如果您的憑證有五個網域名稱,而且需要新增四個網域名稱,則必須使用九個網域名稱申請新憑證。如同使用任何新憑證,您必須驗證申請中所有網域名稱的所有權,包括先前為原始憑證驗證的名稱。

如果您使用電子郵件驗證,便會針對每個網域收到多達 8 封驗證電子郵件,至少其中 1 封必須在 72 個小時內執行。例如,使用五個網域名稱申請憑證時,您會收到多達 40 個驗證訊息,至少其中 5 封必須在 72 個小時內執行。隨著憑證申請的網域名稱數量增加,使用電子郵件驗證網域所有權的必要工作也因此增加。

如果使用 DNS 驗證,則必須為您要驗證的 FQDN 寫入一個新的 DNS 記錄到資料庫。ACM 會將要建立的記錄傳送給您,然後查詢資料庫以判斷是否已新增記錄。新增記錄會宣告您擁有或控制網域。在上述範例中,如果使用五個網域名稱申請憑證,則必須建立五個 DNS 記錄。我們建議您盡可能使用 DNS 驗證。

取消使用憑證透明度記錄功能

重要

無論您採取什麼動作來取消憑證透明度記錄,任何可存取繫結憑證的公有或私有端點的用戶端或個人仍可能會記錄您的憑證。不過,憑證不會包含已簽署的憑證時間戳記 (SCT)。只有發行的 CA 可將 SCT 嵌入至憑證。

從 2018 年 4 月 30 日開始,Google Chrome 不再信任未記錄在憑證透明度日誌的公有 SSL/TLS 憑證。因此,從 2018 年 4 月 24 日開始,Amazon CA 開始將所有新憑證和續約發行到至少兩個公有日誌。憑證記錄後便無法移除。如需詳細資訊,請參閱 憑證透明度記錄

記錄會在您申請憑證或續約憑證時自動執行,但您可以選擇不自動執行。這樣做的常見原因包括安全性和隱私權方面的考量。例如,記錄內部主機網域名稱會提供潛在攻擊者平常不公開的內部網路相關資訊。此外,記錄可能洩漏新的或未發佈的產品和網站的名稱。

若要在要求憑證時選擇退出透明度記錄,請使用要求憑證 AWS CLI 命令或 RequestCertificateAPI 作業的options參數。如果您的憑證是在 2018 年 4 月 24 日之前簽發的,而且您想要確定在續訂期間未記錄憑證,您可以使用update-certificate-options命令或 UpdateCertificateOptionsAPI 作業來選擇退出。

限制
  • 您無法使用主控台來啟用或停用透明度記錄。

  • 憑證進入續約期之後就無法變更記錄狀態,通常是憑證過期前 60 天。如果狀態變更失敗,並不會產生錯誤訊息。

憑證記錄後便無法從日誌移除。在該時間點取消將不會生效。如果您在申請憑證時取消記錄,然後選擇之後記錄,則在憑證續約前,不會記錄憑證。如果您要立即記錄憑證,我們建議您發行新憑證。

以下範例示範如何使用 request-certificate 命令在申請新憑證時停用憑證透明度。

aws acm request-certificate \ --domain-name www.example.com \ --validation-method DNS \ --options CertificateTransparencyLoggingPreference=DISABLED \

上述命令會輸出新憑證的 ARN。

{ "CertificateArn": "arn:aws:acm:region:account:certificate/certificate_ID" }

如果您已經擁有憑證,並且不希望在更新時將其記錄下來,請使用update-certificate-options指令。此命令不會傳回數值。

aws acm update-certificate-options \ --certificate-arn arn:aws:acm:region:account:\ certificate/certificate_ID \ --options CertificateTransparencyLoggingPreference=DISABLED

開啟 AWS CloudTrail

開始使用 ACM 之前,請先開啟 CloudTrail 記錄功能。 CloudTrail 透過擷取帳戶 AWS API 呼叫的歷史記錄,包括透過 AWS 管理主控台、 AWS SDK、和更高層級的 Amazon Web Services 進行的 API 呼叫 AWS Command Line Interface,可讓您監控 AWS 部署。您也可以找出哪些使用者和帳戶呼叫過 ACM API、發出呼叫的來源 IP 地址,以及呼叫的發生時間。您可以使用 API 整合 CloudTrail 到應用程式中、為您的組織自動建立追蹤、檢查追蹤的狀態,以及控制系統管理員開啟和關閉 CloudTrail 登入的方式。如需詳細資訊,請參閱建立追蹤記錄。前往 CloudTrail 搭配使用 AWS Certificate Manager 查看 ACM 動作的追蹤記錄範例。