本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
管理伺服器憑證 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,您必須提供憑證及其相符的私密金鑰。當憑證並非自我簽署憑證時,您還必須提供憑證鏈。(上傳自簽署憑證時無需憑證連結。) 在上傳憑證前,請確保您已具有所有這些項目且滿足以下條件:
若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-nameCloudFrontCertificate
--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,您可以使用「開啟
- 若要將憑證或憑證鏈結從轉換DER為 PEM
-
使用「開啟 SSL x509」指令
,如下列範例所示。在下列範例命令中,取代
為包含您DER編碼憑證的檔案名稱。以偏好Certificate.der
的輸出檔案名稱取代,以包含PEM已編碼的憑證。Certificate.pem
openssl x509 -inform DER -in
Certificate.der
-outform PEM -outCertificate.pem
- 若要將私密金鑰從轉換DER為 PEM
-
使用「開啟 SSL rsa」(Open rsa) 指令
,如下列範例所示。在下列範例命令中,請以包含已DER編碼私密金鑰的檔案名稱取
代。取代為輸出檔案的慣PrivateKey.der
用名稱,以包含經過PEM編碼的私密金鑰。PrivateKey.pem
openssl rsa -inform DER -in
PrivateKey.der
-outform PEM -outPrivateKey.pem
- 解密已加密的私有金鑰 (移除密碼或密碼短語)
-
使用「開啟 SSL rsa」(Open rsa) 指令
,如下列範例所示。若要使用以下範例命令,將
替換為包含您的已加密私有金鑰檔案的名稱。以偏好EncryptedPrivateKey.pem
的輸出檔案名稱取代,以包含經過PEM編碼的未加密私密金鑰。PrivateKey.pem
openssl rsa -in
EncryptedPrivateKey.pem
-outPrivateKey.pem
- 若要將憑證組合從 PKCS #12 (PFX) 轉換為 PEM
-
使用「開啟 SSL pkcs12」指令
,如下列範例所示。在下列範例命令中,請以包
含 PKCS #12 編碼憑證服務包的檔案名稱取代。以偏好CertificateBundle.p12
的輸出檔案名稱取代,以包含經過PEM編碼的憑證服務包。CertificateBundle.pem
openssl pkcs12 -in
CertificateBundle.p12
-outCertificateBundle.pem
-nodes - 若要將憑證組合從 PKCS #7 轉換為 PEM
-
使用「開啟 SSL pkcs7」指令
,如下列範例所示。在下列範例命令中,請以包
含 PKCS #7 編碼憑證服務包的檔案名稱取代。以偏好CertificateBundle.p7b
的輸出檔案名稱取代,以包含經過PEM編碼的憑證服務包。CertificateBundle.pem
openssl pkcs7 -in
CertificateBundle.p7b
-print_certs -outCertificateBundle.pem