本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在 API Gateway 中使用您自己的 ACM 憑證進行後端交互 TLS
您可以設定 API Gateway,將您自己的 CA 簽署憑證呈現給後端服務。將您的憑證匯入 AWS Certificate Manager (ACM),或透過 發行 AWS 私有憑證授權單位。然後,將 ACM 憑證 ARN 連結至您的 API 階段。
先決條件
設定 ACM 用戶端憑證之前,您必須擁有下列項目:
AWS Certificate Manager 在與您 API 相同的區域中存取 。
IAM 許可:
acm:ImportCertificate和acm:DescribeCertificate(適用於選項 A 匯入),或acm:RequestCertificate(適用於選項 B)acm-pca:IssueCertificate,或acm-pca:GetCertificate、 和acm:ImportCertificate(適用於選項 C)。部署至階段的 REST API。
步驟 1:匯入憑證,或透過 發行憑證 AWS 私有憑證授權單位
您可以從現有的 PKI 匯入憑證,或透過 發行新的憑證 AWS 私有憑證授權單位。這兩個路徑都會產生您在下列步驟中使用的 ACM 憑證 ARN。
注意
後端用戶端身分驗證不支援 ACM 公有憑證。自 2025 年 6 月 11 日起, AWS Certificate Manager 不再發行具有clientAuth擴充金鑰用量 (EKU) 的公有憑證。此功能需要 EKU,因此請使用您匯入 ACM 的憑證,或透過 發行的憑證 AWS 私有憑證授權單位。
注意
在與將使用它的 REST API 相同的 AWS 區域中建立 ACM 憑證。ACM 憑證是區域資源,因此憑證必須存在於 API 的區域中。
選項 A:從現有的 PKI 匯入
若要將用戶端憑證及其私有金鑰匯入 ACM,請執行下列命令。如需詳細資訊,請參閱 AWS Certificate Manager 使用者指南中的匯入憑證。
aws acm import-certificate \ --certificate fileb://client-cert.pem\ --private-key fileb://private-key.pem\ --certificate-chain fileb://ca-chain.pem\ --regionregion
命令會傳回 ACM 憑證 ARN。為下列步驟記錄此值。
選項 B:透過 AWS 私有憑證授權單位 (ACM 受管) 請求憑證
若要請求 ACM 管理且可自動續約的私有憑證,請執行下列命令。如需詳細資訊,請參閱AWS Certificate Manager 《 使用者指南》中的請求私有憑證。
aws acm request-certificate \ --domain-namewww.example.com\ --certificate-authority-arn arn:aws:acm-pca:us-east-1:123456789012:certificate-authority/12345678-1234-1234-1234-123456789012\ --regionregion
命令會傳回 ACM 憑證 ARN。為下列步驟記錄此值。
選項 C:透過 發出 AWS 私有憑證授權單位 並匯入 ACM
如果您需要直接控制憑證參數 (例如自訂延伸模組或簽署演算法),您可以透過 發行憑證, AWS 私有憑證授權單位 然後將其匯入 ACM。以這種方式匯入的憑證不會由 ACM 自動續約。確保憑證符合憑證要求。如需發行私有憑證的詳細資訊,請參閱AWS 私有憑證授權單位 《 使用者指南》中的發行私有終端實體憑證。
aws acm-pca issue-certificate \ --certificate-authority-arn arn:aws:acm-pca:us-east-1:123456789012:certificate-authority/12345678-1234-1234-1234-123456789012\ --csr fileb://csr.pem\ --signing-algorithm SHA256WITHRSA \ --validity Value=365,Type=DAYS
擷取和匯入憑證
issue-certificate 命令會傳回 AWS 私有憑證授權單位 憑證 ARN,而不是 ACM ARN。若要搭配 API Gateway 使用此憑證,請使用 擷取憑證,aws acm-pca get-certificate然後使用 將其匯入 ACMaws acm import-certificate。匯入會產生您在下列步驟中使用的 ACM 憑證 ARN。當您執行 時aws acm import-certificate,--region請將 設定為 API 的區域,以便在該處建立 ACM 憑證。
步驟 2:設定 API 階段以使用 ACM 憑證
在您擁有 ACM 憑證 ARN 之後,請設定您的 API 階段,將憑證呈現給您的後端。
設定階段 (主控台)
在 https://https://console.aws.amazon.com/apigateway
開啟 API Gateway 主控台。 選擇您的 REST API。
選擇 Stages (階段)。
在階段詳細資訊區段中,選擇編輯。
對於用戶端憑證,請從下拉式清單中選取您的 ACM 憑證。
選擇儲存變更。
設定階段 (AWS CLI)
執行以下命令:
aws apigateway update-stage \ --rest-api-idabc123\ --stage-nameprod\ --patch-operations op='replace',path=/clientCertificateId,value=arn:aws:acm:us-east-1:123456789012:certificate/12345678-1234-1234-1234-123456789012
注意
API Gateway 對 ACM 和 API Gateway 產生的憑證使用相同的clientCertificateId欄位。當您提供 ACM 憑證 ARN 時,API Gateway 會自動偵測格式並使用 ACM 受管工作流程。
步驟 3:驗證組態
若要驗證 API Gateway 是否將憑證傳送至您的後端,請完成下列步驟:
後端必須請求用戶端憑證
您的後端必須設定為在 TLS 交握期間請求用戶端憑證。如果後端未請求,API Gateway 不會顯示憑證。
叫用您的 API 端點。
檢查您的後端在 TLS 交握期間取得用戶端憑證。
檢查您的後端是否接受憑證並傳回成功的回應。
如果後端拒絕憑證,請確認憑證鏈可以針對後端的信任存放區進行驗證。
憑證需求
您設定的分葉憑證必須符合下列要求。
| 需求 | 說明 |
|---|---|
| 最大鏈結長度 | 5 個憑證 |
| Validity | 當您設定憑證時,憑證不得過期或尚未有效 |
| 區域 | ACM 憑證必須與 API 位於相同的區域 |
| 帳戶 | ACM 憑證必須與 API 位於相同的帳戶中 |
| 擴充金鑰用量 (EKU) | 如果存在, 必須包含 clientAuth。如果不存在,則會接受憑證。 |
| 金鑰用量 (KU) | 如果存在, 必須包含 digitalSignature或 keyAgreement。如果不存在,則會接受憑證。 |
| 金鑰演算法 | 必須是下列其中一項:RSA 2048、RSA 3072、RSA 4096、ECDSA P-256 (EC_prime256v1)、ECDSA P-384 (EC_secp384r1) 或 ECDSA P-521 (EC_secp521r1) |
| ACM 憑證狀態 | 必須為 ISSUED |
注意
API Gateway 不會驗證分葉和中繼憑證之間的信任鏈。API Gateway 也不會驗證中繼憑證的憑證意圖或基本限制條件 (例如 CA:TRUE)。您的後端會在 TLS 交握期間執行這些驗證。
憑證續約和傳播
當 ACM 中的憑證變更時,API Gateway 會偵測更新並自動傳播新憑證。您不需要重新部署階段,而且 API 在輪換期間不會發生停機時間。
憑證傳播最終一致。在更新期間,您的後端可能會收到舊憑證或新憑證,直到傳播完成為止。
憑證續約的方式取決於發行方式:
透過 AWS 私有憑證授權單位 (ACM 受管) (選項 B) 發行的憑證 – ACM 會自動續約這些憑證。API Gateway 會自動偵測續約和更新。
由 發行 AWS 私有憑證授權單位 和匯入的憑證 (選項 C) – ACM 不會自動續約匯入的憑證。您必須重新匯入續約的憑證。重新匯入憑證後,API Gateway 會自動偵測變更和更新。
從 PKI (選項 A) 匯入的憑證 – 您必須將續約的憑證重新匯入 ACM。重新匯入憑證後,API Gateway 會自動偵測變更和更新。
ACM 透過 Amazon EventBridge 傳送憑證過期通知。您可以使用這些通知在憑證過期之前設定警示。
ACM 憑證行為和限制
- 檢視設定的憑證
ACM 憑證不會出現在
GetClientCertificate或GetClientCertificatesAPI 回應中。若要檢視在階段上設定的 ACM 憑證 ARN,請使用 GetStage。若要檢視憑證詳細資訊,請使用 ACM APIs DescribeCertificate 和 GetCertificate。- 跨階段重複使用
您可以將相同的 ACM 憑證連接到多個階段。每個階段都會依其 ARN 獨立參考憑證。
- 用戶端憑證 APIs不適用於 ACM 憑證
ACM 憑證不是 API Gateway 管理的資源。當使用 ACM
GetClientCertificate憑證 ARN 呼叫NotFoundException時UpdateClientCertificate,、 和DeleteClientCertificateAPIs 會傳回 。使用 ACM APIs來管理憑證生命週期。- 自動憑證關聯清除
當您從階段移除 ACM 憑證、更新階段以使用不同的憑證,或刪除階段或 REST API 時,API Gateway 會自動清除憑證關聯。不需要手動動作。
- 刪除 ACM 憑證
當 API Gateway 與其具有作用中關聯時,ACM 不允許您刪除憑證。若要從 ACM 刪除憑證,請先將其從參考憑證的所有階段中移除。