知識庫

在 Amazon Web Services (AWS) 安裝 SSL 證書

注意:本文描述了如何在Amazon Web Services的負載均衡器上安裝SSL證書。如果您使用的是沒有負載均衡器的EC2實例,請參考針對您的Web服務器類型和操作系統編寫的官方文檔。

由證書頒發機構簽發的證書應與私鑰和證書鏈(CA捆綁)一起上傳到IAM。上傳後,這些證書可供其他AWS服務使用。

上傳證書的工具是AWS命令行界面(CLI)。

*注意:證書頒發機構可以以IAM不支持的格式發送給您證書。正確的格式是x.509 PEM。擁有.crt擴展名的文件是PEM格式,因此為了使用它們進行證書上傳,您可以簡單地將.crt文件重命名為.pem文件。

否則,證書應使用OpenSSL轉換為正確的格式。具體命令取決於您證書當前的格式。

    您將需要三個文件來進行上傳:

  • 您的PEM格式證書
  • PEM格式的私鑰
  • 證書鏈。如果您收到作為單獨文件(例如COMODORSADomainValidationSecureServerCA.crt、COMODORSAAddTrustCA.crt和AddTrustExternalCARoot.crt),則可以使用OpenSSL命令將它們合併為一個文件,或從ZTABOX電子郵件中下載捆綁作為一個文件。

將單獨的證書合併為一個完整的CA捆綁的OpenSSL命令是:

cat intermediate1.crt intermediate2.crt root.crt > ssl-bundle.crt

在我們的例子中,命令將如下所示:

cat COMODORSADomainValidationSecureServerCA.crt COMODORSAAddTrustCA.crt AddTrustExternalCARoot.crt > ssl-bundle.crt

您可以用一個命令從命令行上傳所有三個文件:

aws iam upload-server-certificate --server-certificate-name certificate_object_name --certificate-body file://certificate --private-key file://privatekey.pem --certificate-chain file://certificate_chain_file

*注意:在指定文件作為參數(例如,對於certificate-bodyprivate-key參數)時,應包含file://作為文件名的一部分。

certificate_object_name參數用於將您自己的名稱分配給證書,以便日後識別。

    上傳證書時,IAM會根據以下標準進行驗證:

  • 證書應為X.509 PEM格式。
  • 當前日期應在證書的簽發和到期日期之間。
  • 證書和私鑰文件應僅包含一個項目,意味著一個證書和一個密鑰相對應。
  • 私鑰應與證書匹配。
  • 私鑰應與證書一樣是PEM格式。正確格式的密鑰文本以 -----BEGIN RSA PRIVATE KEY----- 開始,以 -----END RSA PRIVATE KEY----- 結束。
  • 私鑰不得用密碼加密。

一旦證書上傳,您可以在IAM存儲中驗證信息。 使用以下命令來驗證證書:

aws iam get-server-certificate --server-certificate-name certificate_object_name

輸出將如下所示:

arn:aws:iam::Your_AWS_Account_ID:server-certificate/Your_Certificate_Object_Name Certificate_Object_GUID

Your_AWS_Account_ID是唯一的Amazon資源名稱(ARN),而Certificate_Object_GUID是證書的ID。

響應將如下所示:

arn:aws:iam::123456789012:server-certificate/certificate_object_name ADGTHexampleLKBASAH

第一行的數字是ARN,而第二行是證書ID。

如果您需要更新HTTPS負載均衡器的證書,則需要使用證書的ARN。以下命令用於設置負載均衡器的證書:

aws elb set-load-balancer-listener-ssl-certificate --load-balancer-name my-loadbalancer --load-balancer-port 443 --ssl-certificate-id arn:aws:iam::123456789012:server-certificate/certificate_object_name

my-loadbalancer參數是您的負載均衡器的名稱。

有關創建HTTPS負載均衡器和設置其名稱的詳細信息,請查看以下指南