使用 將 Windows SSL憑證遷移至 Application Load Balancer ACM - AWS 方案指引

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

使用 將 Windows SSL憑證遷移至 Application Load Balancer ACM

由 Chandra Sekhar Yaratha (AWS) 和 Igor Kovalchuk (AWS) 建立

環境:生產

來源:Windows Web 應用程式

目標: Application Load Balancer on AWS

R 類型:Replatform

工作負載:Microsoft

技術:遷移;管理與治理;Web 和行動應用程式

AWS 服務:Elastic Load Balancing (ELB);AWSCerticate Manager (ACM)

Summary

此模式提供使用 AWS Certificate Manager (ACM) 將現有的 Secure Sockets Layer (SSL) 憑證從託管在內部部署伺服器或 Microsoft Internet Information Services () 上的 Amazon Elastic Compute Cloud (AmazonEC2) 執行個體上的網站遷移的指引IIS。然後,SSL憑證可以與 上的 Elastic Load Balancing 搭配使用AWS。

SSL 保護您的資料、確認您的身分、提供更好的搜尋引擎排名、協助滿足支付卡產業資料安全標準 (PCIDSS) 要求,以及改善客戶信任。管理這些工作負載的開發人員和 IT 團隊希望其 Web 應用程式和基礎設施,包括IIS伺服器和 Windows Server,保持符合其基準政策。

此模式涵蓋從 Microsoft 手動匯出現有SSL憑證IIS、將它們從個人資訊交換 (PFX) 格式轉換為ACM支援的 Private Enhanced Mail (PEM) 格式,然後將它們匯入AWS您的帳戶ACM。它還描述如何為您的應用程式建立 Application Load Balancer,並設定 Application Load Balancer 以使用匯入的憑證。HTTPS 連線會在 Application Load Balancer 上終止,而您不需要 Web 伺服器上的進一步組態額外負荷。如需詳細資訊,請參閱建立 Application Load Balancer 的HTTPS接聽程式

Windows 伺服器使用 .pfx 或 .p12 檔案來包含公有金鑰檔案 (SSL 憑證) 及其唯一的私有金鑰檔案。Certificate Authority (CA) 會為您提供公有金鑰檔案。您可以使用伺服器來產生建立憑證簽署請求 (CSR) 的相關私有金鑰檔案。

先決條件和限制

先決條件

  • 作用中AWS帳戶

  • 上的虛擬私有雲端 (VPC),在目標使用的每個可用區域中至少AWS有一個私有和一個公有子網路

  • IIS 在 Windows Server 2012 或更新版本上執行的 8.0 版或更新版本

  • 在 上執行的 Web 應用程式 IIS

  • IIS 伺服器的管理員存取權

架構

來源技術堆疊

  • IIS 使用 實作 Web 伺服器,SSL以確保資料以加密連線安全地傳輸 (HTTPS)

來源架構

使用 將 Windows SSL憑證遷移至 Application Load Balancer 的來源架構 ACM

目標技術堆疊

  • ACM AWS帳戶中的憑證

  • 設定為使用匯入憑證的 Application Load Balancer

  • 私有子網路中的 Windows Server 執行個體

目標架構

使用 將 Windows SSL憑證遷移至 Application Load Balancer 的目標架構 ACM

工具

  • AWS Certificate Manager (ACM) 可協助您建立、儲存和更新公有和私有 SSL/TLS X.509 憑證和金鑰,以保護AWS網站和應用程式。

  • Elastic Load Balancing (ELB) 會將傳入的應用程式或網路流量分散到多個目標。例如,您可以在一或多個可用區域中將流量分散到EC2執行個體、容器和 IP 地址。

最佳實務

  • 強制執行流量從 重新導向HTTP至 HTTPS。

  • 正確設定 Application Load Balancer 的安全群組,以僅允許傳入流量至特定連接埠。

  • 在不同的可用區域中啟動EC2執行個體,以確保高可用性。

  • 將應用程式的網域設定為指向 Application Load Balancer DNS的名稱,而不是其 IP 地址。

  • 確定 Application Load Balancer 已設定應用程式層運作狀態檢查

  • 設定運作狀態檢查的閾值。

  • 使用 Amazon CloudWatch 監控 Application Load Balancer

史詩

任務描述所需的技能

從 Windows Server 匯出 .pfx 檔案。

若要從 Windows Server 中的內部部署IIS管理員將SSL憑證匯出為 .pfx 檔案:

  1. 選擇開始 管理 網際網路資訊服務 (IIS) 管理員

  2. 選取伺服器名稱,然後在安全性 下按兩下伺服器憑證

  3. 選擇您要匯出的憑證,然後選擇匯出

  4. 匯出憑證方塊中,選擇 .pfx 檔案的位置、路徑和名稱。

  5. 指定並確認 .pfx 檔案的密碼。

    注意:安裝 .pfx 檔案時需要此密碼。

  6. 選擇確定。

您的 .pfx 檔案現在應儲存至您指定的位置和路徑。

系統管理員
任務描述所需的技能

下載並安裝 OpenSSL 工具組。

  1. 從 Shining Light Productions 網站下載並安裝 Win32/Win64 OpenSSL

  2. 將開啟SSL二進位檔的位置新增至您的系統PATH變數,以便二進位檔可供命令列使用。

系統管理員

將 PFX編碼的憑證轉換為 PEM 格式。

下列步驟會將 PFX編碼、簽章的憑證檔案轉換為三種PEM格式的檔案:

  • cert-file.pem 包含 資源的 SSL/TLS 憑證。

  • privatekey.pem 包含沒有密碼保護的憑證私有金鑰。

  • ca-chain.pem 包含 CA 的根憑證。

若要轉換PFX編碼憑證:

  1. 執行 Windows PowerShell。

  2. 使用下列命令,從 PFX 檔案擷取憑證的私有金鑰。出現提示時,輸入憑證密碼。

    openssl pkcs12 -in <filename>.pfx -nocerts -out withpw-privatekey.pem

    此命令會產生名為 PEM的 編碼私有金鑰檔案privatekey.pem。輸入密碼以在出現提示時保護私有金鑰檔案。

  3. 執行下列命令來移除密碼片語。出現提示時,請提供您在步驟 2 中建立的密碼片語。

    openssl rsa -in withpw-privatekey.pem -out privatekey.pem

    如果命令成功,則會顯示「寫入RSA金鑰」訊息。

  4. 使用下列命令,將憑證從 PFX 檔案傳輸至 PEM 檔案。

    openssl pkcs12 -in <file_name>.pfx -clcerts -nokeys -out cert-file.pem

    這會建立名為 PEM的 編碼憑證檔案cert-file.pem。如果命令成功,則會顯示「MAC已驗證的確定」訊息。

  5. 從 檔案建立 CA 鏈PFX檔案。下列命令會建立名為 的 CA 鏈檔案ca-chain.pem

    openssl pkcs12 -in <file_name>.pfx -cacerts -nokeys -chain -out ca-chain.pem

    如果命令成功,則會顯示「MAC已驗證確定」訊息。

系統管理員
任務描述所需的技能

準備匯入憑證。

ACM主控台 上,選擇匯入憑證

雲端管理員

提供憑證內文。

對於憑證內文 ,請貼上您要匯入的 PEM編碼憑證。

如需有關此 和此史詩中其他任務中所述命令和步驟的詳細資訊,請參閱 ACM 文件中的匯入憑證

雲端管理員

提供憑證私有金鑰。

對於憑證私有金鑰 ,貼上符合憑證公有金鑰的 PEM編碼、未加密私有金鑰。

雲端管理員

提供憑證鏈。

對於憑證鏈 ,請貼上 PEM編碼的憑證鏈,該鏈存放在 CertificateChain.pem 檔案中。

雲端管理員

匯入憑證。

選擇 Review and import (檢閱和匯入)。確認憑證的相關資訊正確無誤,然後選擇匯入

雲端管理員
任務描述所需的技能

建立和設定負載平衡器和接聽程式。

請遵循 Elastic Load Balancing 文件中的指示來設定目標群組、註冊目標,以及建立 Application Load Balancer 和接聽程式。新增連接埠 443 的第二個接聽程式 (HTTPS)。

雲端管理員

故障診斷

問題解決方案

即使您將 Open SSL命令新增至系統路徑,Windows PowerShell 也不會識別該命令。

檢查 $env:path以確保它包含開啟SSL二進位檔的位置。

如果沒有,請在 中執行下列命令 PowerShell:

$env:path = $env:path + ";C:\OpenSSL-Win64\bin"

相關資源

將憑證匯入 ACM

建立 Application Load Balancer