管理伺服器憑證 IAM - AWS Identity and Access Management

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

管理伺服器憑證 IAM

若要在中啟用網站或應用程式的HTTPS連線 AWS,您需要SSL/TLS伺服器憑證。對於 AWS Certificate Manager (ACM) 支援的區域中的憑證,建議您使ACM用佈建、管理和部署伺服器憑證。在不支援的區域中,您必須使用IAM做為憑證管理員。若要瞭解哪些地區ACM支援,請參閱AWS Certificate Manager AWS 一般參考.

重要

ACM是佈建、管理及部署伺服器憑證的偏好工具。使用時,ACM您可以要求憑證,或將現有ACM或外部憑證部署到 AWS 資源。提供的證書ACM是免費的,並自動更新。在支援的區域中,您可以使用從主控台或ACM以程式設計方式管理伺服器憑證。若要取得有關使用的更多資訊ACM,請參閱AWS Certificate Manager 使用指南。如需有關要求ACM憑證的詳細資訊,請參閱AWS Certificate Manager 使用者指南中的要求公憑證或要求私人憑證。如需將協力廠商憑證匯入的詳細資訊ACM,請參閱AWS Certificate Manager 使用指南中的匯入憑證

只有當您必須支援不受支援的區域中的HTTPS連線時,才可以IAM作為憑證管理員使用ACM。IAM安全地加密您的私鑰,並將加密版本存儲在IAMSSL證書存儲中。IAM支援在所有區域中部署伺服器憑證,但您必須從外部提供者取得憑證才能搭配使用 AWS。您無法將ACM憑證上傳至IAM。此外,您無法從IAM主控台管理憑證。

如需將協力廠商憑證上傳至的相關資訊IAM,請參閱下列主題。

上傳伺服器憑證 (AWS API)

若要將伺服器憑證上傳至IAM,您必須提供憑證及其相符的私密金鑰。當憑證並非自我簽署憑證時,您還必須提供憑證鏈。(上傳自簽署憑證時無需憑證連結。) 在上傳憑證前,請確保您已具有所有這些項目且滿足以下條件:

  • 憑證在上傳時必須有效。您不能在憑證有效期開始 (憑證的 NotBefore 日期) 之前或憑證有效期到期 (憑證的 NotAfter 日期) 之後上傳憑證。

  • 私有金鑰必須為未加密。您無法上傳受密碼或複雜密碼保護的私有金鑰。有關解密已加密的私有金鑰的說明資訊,請參閱 排解伺服器憑證

  • 憑證、私密金鑰和憑證鏈結都必須經過PEM編碼。如需將這些項目轉換為PEM格式的說明,請參閱排解伺服器憑證

IAMAPI要使用上傳憑證,請傳送UploadServerCertificate要求。以下範例顯示如何使用 AWS Command Line Interface (AWS CLI) 執行此作業。該範例假設如下:

  • PEM編碼的憑證會儲存在名為Certificate.pem的檔案中。

  • PEM編碼的憑證鏈結會儲存在名為CertificateChain.pem的檔案中。

  • 經過PEM編碼的未加密私密金鑰會儲存在名為的檔案中。PrivateKey.pem

  • (選用) 您要使用鍵值組來標記伺服器憑證。例如,您可以新增標籤金鑰 Department 和標籤值 Engineering,以協助您識別和整理憑證。

若要使用下列範例命令,請將這些檔案名稱取代為您自己的檔案名稱。Replace (取代) ExampleCertificate 與您上傳的證書的名稱。如果您要標記憑證,請取代 ExampleKey 以及 ExampleValue 使用您自己的值標記鍵值對。在連續的一行中輸入命令。為方便閱讀,以下範例包含分行符號和多餘的空格。

aws iam upload-server-certificate --server-certificate-name ExampleCertificate --certificate-body file://Certificate.pem --certificate-chain file://CertificateChain.pem --private-key file://PrivateKey.pem --tags '{"Key": "ExampleKey", "Value": "ExampleValue"}'

當上述命令成功時,它會傳回有關上傳憑證的中繼資料,包括其 Amazon 資源名稱 (ARN)、易記名稱、識別碼 (ID)、到期日、標籤等。

注意

如果您要上傳要與 Amazon 搭配使用的伺服器憑證 CloudFront,則必須使用--path選項指定路徑。路徑必須以 /cloudfront 開頭,且必須包含結尾反斜線 (例如,/cloudfront/test/)。

若要使用上 AWS Tools for Windows PowerShell 傳憑證,請使用 [發佈-] IAMServerCertificate。

AWS API伺服器憑證的作業

使用下列命令來檢視、標記、重新命名和刪除伺服器憑證。

  • GetServerCertificate於擷取憑證。此要求會傳回憑證、憑證鏈結 (如果已上傳),以及憑證的中繼資料。

    注意

    您無法從上傳IAM之後下載或擷取私密金鑰。

  • 使用 Get-IAMServerCertificate 擷取憑證。

  • ListServerCertificates於列出您上傳的伺服器憑證。要求會傳回一份清單,其中包含每個憑證的中繼資料。

  • 使用 Get- 列IAMServerCertificates出您上傳的伺服器憑證。

  • TagServerCertificate來標記現有的伺服器憑證。

  • UntagServerCertificate於取消標記伺服器憑證。

  • UpdateServerCertificate於重新命名伺服器憑證或更新其路徑。

    以下範例顯示如何使用 AWS CLI執行此作業。

    若要使用以下範例指令,請將取代舊與新的憑證名稱與憑證路徑,並在連續的一行中輸入命令。為方便閱讀,以下範例包含分行符號和多餘的空格。

    aws iam update-server-certificate --server-certificate-name ExampleCertificate --new-server-certificate-name CloudFrontCertificate --new-path /cloudfront/

    若要使用 AWS Tools for Windows PowerShell 重新命名伺服器憑證或更新其路徑,請使用 Update-IAMServerCertificate

  • DeleteServerCertificate於刪除伺服器憑證。

    若要使用刪 AWS Tools for Windows PowerShell 除伺服器憑證,請使用 [移除-] IAMServerCertificate。

排解伺服器憑證

您必須先確定憑證IAM、私密金鑰和憑證鏈結都是經過PEM編碼的,才能將憑證上傳至。您還必須確保私有金鑰為未加密。請參閱以下範例。

範例PEM編碼憑證
-----BEGIN CERTIFICATE----- Base64-encoded certificate -----END CERTIFICATE-----
範例 PEM-編碼、未加密的私密金鑰
-----BEGIN RSA PRIVATE KEY----- Base64-encoded private key -----END RSA PRIVATE KEY-----
範例PEM編碼憑證鏈結

憑證鏈包含一或多個憑證。您可以使用文字編輯器、Windows 的 copy 命令,或 Linux cat 命令,將憑證檔案串連為憑證鏈。當您包含多個憑證時,每個憑證必須認證先前的憑證。您可以透過串連憑證 (包含上一個根 CA 憑證) 來完成此動作。

以下範例包含三個憑證,但您的憑證鏈可包含更多或更少憑證。

-----BEGIN CERTIFICATE----- Base64-encoded certificate -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- Base64-encoded certificate -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- Base64-encoded certificate -----END CERTIFICATE-----

如果這些項目的上傳格式不正確IAM,您可以使用「開啟」將其SSL轉換為正確的格式。

若要將憑證或憑證鏈結從轉換DER為 PEM

使用「開啟 SSL x509」指令,如下列範例所示。在下列範例命令中,取代Certificate.der為包含您DER編碼憑證的檔案名稱。以偏好Certificate.pem的輸出檔案名稱取代,以包含PEM已編碼的憑證。

openssl x509 -inform DER -in Certificate.der -outform PEM -out Certificate.pem

 

若要將私密金鑰從轉換DER為 PEM

使用「開啟 SSL rsa」(Open rsa) 指令,如下列範例所示。在下列範例命令中,請以包含已DER編碼私密金鑰的檔案名稱取PrivateKey.der代。取代為輸出檔案的慣PrivateKey.pem用名稱,以包含經過PEM編碼的私密金鑰。

openssl rsa -inform DER -in PrivateKey.der -outform PEM -out PrivateKey.pem

 

解密已加密的私有金鑰 (移除密碼或密碼短語)

使用「開啟 SSL rsa」(Open rsa) 指令,如下列範例所示。若要使用以下範例命令,將 EncryptedPrivateKey.pem 替換為包含您的已加密私有金鑰檔案的名稱。以偏好PrivateKey.pem的輸出檔案名稱取代,以包含經過PEM編碼的未加密私密金鑰。

openssl rsa -in EncryptedPrivateKey.pem -out PrivateKey.pem

 

若要將憑證組合從 PKCS #12 (PFX) 轉換為 PEM

使用「開啟 SSL pkcs12」指令,如下列範例所示。在下列範例命令中,請以包CertificateBundle.p12含 PKCS #12 編碼憑證服務包的檔案名稱取代。以偏好CertificateBundle.pem的輸出檔案名稱取代,以包含經過PEM編碼的憑證服務包。

openssl pkcs12 -in CertificateBundle.p12 -out CertificateBundle.pem -nodes

 

若要將憑證組合從 PKCS #7 轉換為 PEM

使用「開啟 SSL pkcs7」指令,如下列範例所示。在下列範例命令中,請以包CertificateBundle.p7b含 PKCS #7 編碼憑證服務包的檔案名稱取代。以偏好CertificateBundle.pem的輸出檔案名稱取代,以包含經過PEM編碼的憑證服務包。

openssl pkcs7 -in CertificateBundle.p7b -print_certs -out CertificateBundle.pem