本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
AWS CloudHSM SSL/TLS 在 Windows 上使用 IIS搭配 卸載 CNG
本教學課程提供 step-by-step在 Windows Web 伺服器上使用 AWS CloudHSM 設定SSL/TLS卸載的指示。
概觀
在 Windows 上,Windows Server Web 伺服器應用程式的網際網路資訊服務 (IIS)
此教學課程會讓您了解如何執行以下操作:
-
在 Amazon EC2執行個體上安裝 Web 伺服器軟體。
-
將 Web 伺服器軟體設定為HTTPS使用儲存在 AWS CloudHSM 叢集中的私有金鑰支援 。
-
(選用) 使用 Amazon EC2建立第二個 Web 伺服器執行個體,並使用 Elastic Load Balancing 建立負載平衡器。使用負載平衡器可將負載分散到多部伺服器,進而提升效能。它也可以在一或多個伺服器失敗時提供備援和高可用性。
當您準備好開始時,請移至步驟 1:設定先決條件。
步驟 1:設定先決條件
若要使用 設定 Web 伺服器SSL/TLS卸載 AWS CloudHSM,您需要下列項目:
-
具有至少一個 的作用中 AWS CloudHSM 叢集HSM。
-
執行已安裝下列軟體之 Windows 作業系統的 Amazon EC2執行個體:
-
Windows 的 AWS CloudHSM 用戶端軟體。
-
Windows Server 的網際網路資訊服務 (IIS)。
-
-
在 上擁有和管理 Web 伺服器私有金鑰的加密使用者 (CU)HSM。
注意
本教學課程使用 Microsoft Windows Server 2016。也支援 Microsoft Windows Server 2012,但不支援 Microsoft Windows Server 2012 R2。
在 上設定 Windows Server 執行個體和建立 CU HSM
-
完成「開始使用」中的步驟。當您啟動 Amazon EC2用戶端時,請選擇 Windows Server 2016 或 Windows Server 2012AMI。當您完成這些步驟時,您有一個具有至少一個 的作用中叢集HSM。您也有執行 Windows Server 的 Amazon EC2用戶端執行個體,其中已安裝 Windows 用戶端 AWS CloudHSM 軟體。
-
(選用) HSMs將更多新增至叢集。如需詳細資訊,請參閱將 HSM新增至 AWS CloudHSM 叢集。
-
連接至 Windows 伺服器。如需詳細資訊,請參閱 Amazon EC2使用者指南 中的連線至您的執行個體。
-
使用 CloudHSM CLI建立加密使用者 (CU)。保持追蹤 CU 使用者名稱和密碼。您需要它們來完成下一個步驟。
注意
如需建立使用者的相關資訊,請參閱使用雲端HSM管理HSM使用者。 CLI
-
使用您在上一個步驟中建立的 CU 使用者名稱和密碼,設定 的登入憑證HSM。
-
在步驟 5 中,如果您使用 Windows Credentials Manager 來設定HSM憑證,
psexec.exe
請從 下載 SysInternals 以執行下列命令作為 NT Authority:SYSTEM psexec.exe -s "C:\Program Files\Amazon\CloudHsm\tools\set_cloudhsm_credentials.exe" --username
<USERNAME>
--password<PASSWORD>
Replace (取代)
<USERNAME>
以及<PASSWORD>
憑證HSM。
在 Windows Server IIS上安裝
-
如果您尚未這麼做,請連接至您的 Windows 伺服器。如需詳細資訊,請參閱 Amazon EC2使用者指南 中的連線至您的執行個體。
-
在 Windows 伺服器上,啟動 Server Manager (伺服器管理員)。
-
在 Server Manager (伺服器管理員) 儀表板中,選擇 Add roles and features (新增角色和功能)。
-
閱讀 Before you begin (開始之前) 資訊,然後選擇 Next (下一步)。
-
對於 Installation Type (安裝類型),選擇 Role-based or feature-based installation (角色型或功能型安裝)。然後選擇下一步。
-
對於 Server Selection (伺服器選項),選擇 Select a server from the server pool (從伺服器集區選取伺服器)。然後選擇下一步。
-
對於 Server Roles (伺服器角色),執行下列動作:
-
選取 Web 伺服器 (IIS)。
-
對於新增 Web 伺服器 (IIS) 所需的功能,選擇新增功能 。
-
選擇 Next (下一步) 來完成伺服器角色的選取。
-
-
針對 Features (功能),接受預設。然後選擇下一步。
-
閱讀 Web Server 角色 (IIS) 資訊。然後選擇下一步。
-
對於 Select role services (選取角色服務),接受預設值或變更為偏好的設定。然後選擇下一步。
-
針對 Confirmation (確認),閱讀確認資訊。然後選擇 Install (安裝)。
-
完成安裝之後,請選擇 Close (關閉)。
完成這些步驟之後,請移至 步驟 2:建立憑證簽署請求 (CSR) 和憑證。
步驟 2:建立憑證簽署請求 (CSR) 和憑證
若要啟用 HTTPS,您的 Web 伺服器需要使用 SSL/TLS certificate and a corresponding private key. To use SSL/TLS卸載 AWS CloudHSM,您可以將私有金鑰存放在叢集中的 HSM中 AWS CloudHSM 。若要這麼做,您可以使用 AWS CloudHSM Microsoft 密碼編譯的金鑰儲存提供者 (KSP)API:新一代 (CNG) 來建立憑證簽署請求 ()CSR。然後,您將 CSR授予憑證授權機構 (CA),該授權機構會簽署 CSR 以產生憑證。
建立 CSR
使用 Windows Server AWS CloudHSM KSP上的 來建立 CSR。
若要建立 CSR
-
如果您尚未這麼做,請連接至您的 Windows 伺服器。如需詳細資訊,請參閱 Amazon EC2使用者指南 中的連線至您的執行個體。
-
使用以下命令啟動 AWS CloudHSM 用戶端常駐程式。
-
在 Windows 伺服器上,使用文字編輯器來建立名為
IISCertRequest.inf
的憑證要求檔案。下列示範範例IISCertRequest.inf
檔案的內容。如需您可在檔案中指定之區段、金鑰和數值的詳細資訊,請參閱 Microsoft 文件。請勿變更 ProviderName
值。[Version] Signature = "$Windows NT$" [NewRequest] Subject = "CN=example.com,C=US,ST=Washington,L=Seattle,O=ExampleOrg,OU=WebServer" HashAlgorithm = SHA256 KeyAlgorithm = RSA KeyLength = 2048 ProviderName = "Cavium Key Storage Provider" KeyUsage = 0xf0 MachineKeySet = True [EnhancedKeyUsageExtension] OID=1.3.6.1.5.5.7.3.1
-
使用 Windows certreq 命令
,CSR從您在上一個步驟中建立 IISCertRequest.inf
的檔案建立 。下列範例會將 儲存至名為 CSR的檔案IISCertRequest.csr
。如果您為憑證請求檔案使用不同的檔案名稱,請取代IISCertRequest.inf
使用適當的檔案名稱。您可以選擇性地取代IISCertRequest.csr
使用不同的檔案名稱CSR。C:\>
certreq -new
IISCertRequest.inf
IISCertRequest.csr
SDK Version: 2.03 CertReq: Request Created
IISCertRequest.csr
檔案包含您的 CSR。您需要此項目CSR才能取得已簽署的憑證。
取得已簽署的憑證並匯入它
在生產環境中,您通常會使用憑證授權機構 (CA) 從 建立憑證CSR。測試環境不需要 CA。如果您確實使用 CA,請將CSR檔案 (IISCertRequest.csr
) 傳送至該檔案,然後使用 CA 建立已簽署SSL/TLS憑證。
除了使用 CA 之外,您也可以使用 OpenSSL
警告
自簽憑證不受瀏覽器所信任,請勿用於生產環境。可以用於測試環境。
下列程序說明如何建立自我簽署憑證,並使用它來簽署 Web 伺服器的 CSR。
建立自簽憑證
-
使用下列 OpenSSL 命令來建立私有金鑰。您可以選擇性地取代
SelfSignedCA.key
檔案名稱,以包含您的私有金鑰。openssl genrsa -aes256 -out
SelfSignedCA.key
2048Generating RSA private key, 2048 bit long modulus ......................................................................+++ .........................................+++ e is 65537 (0x10001) Enter pass phrase for SelfSignedCA.key: Verifying - Enter pass phrase for SelfSignedCA.key:
-
使用下列 OpenSSL 命令,使用您在上一個步驟中建立的私有金鑰來建立自我簽署憑證。這是互動式命令。請閱讀畫面上的指示,並依照提示操作。Replace (取代)
SelfSignedCA.key
包含私有金鑰的檔案名稱 (如果不同)。您可以選擇性地取代SelfSignedCA.crt
包含自我簽署憑證的檔案名稱。openssl req -new -x509 -days 365 -key
SelfSignedCA.key
-outSelfSignedCA.crt
Enter pass phrase for SelfSignedCA.key: You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [AU]: State or Province Name (full name) [Some-State]: Locality Name (eg, city) []: Organization Name (eg, company) [Internet Widgits Pty Ltd]: Organizational Unit Name (eg, section) []: Common Name (e.g. server FQDN or YOUR name) []: Email Address []:
使用自我簽署憑證來簽署 Web 伺服器的 CSR
-
使用下列 OpenSSL 命令,使用您的私有金鑰和自我簽署憑證來簽署 CSR。將以下名稱取代為包含對應資料之檔案的名稱 (若不同的話)。
-
IISCertRequest.csr
– 包含 Web 伺服器 的檔案名稱 CSR -
SelfSignedCA.crt
– 包含自我簽署憑證的檔案名稱 -
SelfSignedCA.key
– 包含私有金鑰的檔案名稱 -
IISCert.crt
– 要包含 Web 伺服器簽章憑證的檔案名稱
openssl x509 -req -days 365 -in
IISCertRequest.csr
\ -CASelfSignedCA.crt
\ -CAkeySelfSignedCA.key
\ -CAcreateserial \ -outIISCert.crt
Signature ok subject=/ST=IIS-HSM/L=IIS-HSM/OU=IIS-HSM/O=IIS-HSM/CN=IIS-HSM/C=IIS-HSM Getting CA Private Key Enter pass phrase for SelfSignedCA.key:
-
在完成前一個步驟之後,您有一個適用於 Web 伺服器的自簽憑證 (IISCert.crt
) 和自簽憑證 (SelfSignedCA.crt
)。當您具有這些檔案,請移至步驟 3:設定 Web 伺服器。
步驟 3:設定 Web 伺服器
更新您的IIS網站組態,以使用您在上一個步驟 結束時建立的HTTPS憑證。這將完成使用 為 SSL/TLS 卸載設定 Windows Web 伺服器軟體 (IIS) AWS CloudHSM。
如果您使用自我簽署憑證來簽署 CSR,您必須先將自我簽署憑證匯入 Windows Trusted Root Certification Authority。
將自簽憑證匯入至 Windows 受信任的根認證授權單位
-
如果您尚未這麼做,請連接至您的 Windows 伺服器。如需詳細資訊,請參閱 Amazon EC2使用者指南 中的連線至您的執行個體。
-
將自簽憑證複製到 Windows 伺服器。
-
在 Windows 伺服器上,開啟 Control Panel (控制台)。
-
針對 Search Control Panel (搜尋控制台),輸入
certificates
。然後選擇 Manage computer certificates (管理電腦憑證)。 -
在 Certificates - Local Computer (憑證 - 本機電腦) 視窗中,按兩下 Trusted Root Certification Authorities (受信任的根認證授權單位)。
-
用滑鼠右鍵按一下 Certificates (憑證),然後選擇 All Tasks (所有工作)、Import (匯入)。
-
在 Certificate Import Wizard (憑證匯入精靈) 中,選擇 Next (下一步)。
-
選擇 Browse (瀏覽),然後尋找並選取您的自簽憑證。如果您已遵循本教學課程前一個步驟中的指示來建立自簽憑證,則您的自簽憑證即名為
SelfSignedCA.crt
。選擇 Open (開啟)。 -
選擇 Next (下一步)。
-
對於 Certificate Store (憑證存放區),選擇 Place all certificates in the following store (將所有憑證放入以下存放區)。然後,確保選取 Trusted Root Certification Authorities (受信任的根認證授權單位) 做為 Certificate store(憑證存放區)。
-
選擇 Next (下一步) ,然後選擇 Finish (完成)。
更新IIS網站的組態
-
如果您尚未這麼做,請連接至您的 Windows 伺服器。如需詳細資訊,請參閱 Amazon EC2使用者指南 中的連線至您的執行個體。
-
啟動 AWS CloudHSM 用戶端常駐程式。
-
將 Web 伺服器的已簽署憑證 (這是您在本教學課程前一個步驟結束時建立的憑證) 複製到 Windows 伺服器。
-
在您的 Windows 伺服器上,使用 Windows certreq 命令
,來接受已簽署的憑證,如以下範例所示。Replace (取代) IISCert.crt
包含 Web 伺服器簽署憑證的檔案名稱。C:\>
certreq -accept
IISCert.crt
SDK Version: 2.03
-
在 Windows 伺服器上,啟動 Server Manager (伺服器管理員)。
-
在 Server Manager 儀表板的右上角,選擇工具 、網際網路資訊服務 (IIS) Manager 。
-
在網際網路資訊服務 (IIS) Manager 視窗中,按兩下您的伺服器名稱。然後按兩下 Sites (網站)。選取網站。
-
選取SSL設定 。然後,在視窗右側選擇 Bindings (繫結)。
-
在 Site Bindings (網站繫結) 視窗中,選擇 Add (新增)。
-
對於 Type (類型),選擇 https (https)。針對SSL憑證 ,選擇您在本教學課程的上一個步驟 結束時建立的HTTPS憑證。
注意
如果您在此次憑證繫結中遇到錯誤,請重新啟動您的伺服器並重試此步驟。
-
選擇確定。
在更新網站組態之後,請移至步驟 4:啟用HTTPS流量並驗證憑證。
步驟 4:啟用HTTPS流量並驗證憑證
使用 設定 SSL/TLS 卸載 Web 伺服器後 AWS CloudHSM,請將 Web 伺服器執行個體新增至允許傳入HTTPS流量的安全群組。這可讓 Web 瀏覽器等用戶端與您的 Web 伺服器建立HTTPS連線。然後與 Web 伺服器建立HTTPS連線,並驗證其是否使用您為 設定SSL/TLS卸載的憑證 AWS CloudHSM。
啟用傳入HTTPS連線
若要從用戶端 (例如 Web 瀏覽器) 連線至 Web 伺服器,請建立允許傳入HTTPS連線的安全群組。具體而言,它應該允許連接埠 443 上的傳入TCP連線。將此安全群組指派到您的 Web 伺服器。
為 建立安全群組,HTTPS並將其指派給您的 Web 伺服器
-
在 開啟 Amazon EC2主控台https://console.aws.amazon.com/ec2/
。 -
在導覽窗格中選擇安全群組。
-
選擇建立安全群組。
-
對於 Create Security Group (建立安全群組),執行下列動作:
-
對於 Security group name (安全群組名稱),輸入您要建立之安全群組的名稱。
-
(選用) 輸入您要建立之安全群組的描述。
-
針對 VPC,選擇包含 Web 伺服器 Amazon EC2執行個體VPC的 。
-
選取 Add Rule (新增規則)。
-
對於類型 ,HTTPS請從下拉式清單中選取 。
-
對於來源,輸入來源位置。
-
選擇建立安全群組。
-
-
在導覽窗格中,選擇 Instances (執行個體)。
-
選取 Web 伺服器執行個體旁的核取方塊。
-
選取頁面頂端的動作下拉式選單。選取安全性,然後選取變更安全群組。
-
針對相關聯的安全群組 ,選取搜尋方塊,然後選擇您為 建立的安全群組HTTPS。然後選擇新增安全群組。
-
選取 Save (儲存)。
驗證 是否HTTPS使用您設定的憑證
將 Web 伺服器新增至安全群組後,您可以驗證 SSL/TLS 卸載是否使用自我簽署憑證。您可以使用 Web 瀏覽器或使用 OpenSSL s_client
使用 Web 瀏覽器驗證SSL/TLS卸載
-
使用 Web 瀏覽器,使用伺服器的公有DNS名稱或 IP 地址連線至您的 Web 伺服器。確保地址列URL中的 以 https://. 開頭 例如:
https://ec2-52-14-212-67.us-east-2.compute.amazonaws.com/
。提示
您可以使用 Amazon Route 53 之類的DNS服務,將網站的網域名稱 (例如 https://www.example.com/) 路由至 Web 伺服器。如需詳細資訊,請參閱 Amazon Route 53 開發人員指南或 服務文件中的將流量路由至 Amazon EC2執行個體。 DNS
-
使用您的 Web 瀏覽器來檢視 Web 伺服器憑證。如需詳細資訊,請參閱下列內容:
其他 Web 瀏覽器可能有類似的功能,可供您用來檢視 Web 伺服器憑證。
-
確定 SSL/TLS 憑證是您設定 Web 伺服器使用的憑證。
使用 OpenSSL s_client 驗證SSL/TLS卸載
-
執行下列 OpenSSL 命令,以使用 連線至您的 Web 伺服器HTTPS。Replace (取代)
<server name>
使用 Web 伺服器的公有DNS名稱或 IP 地址。openssl s_client -connect
<server name>
:443提示
您可以使用 Amazon Route 53 之類的DNS服務,將網站的網域名稱 (例如 https://www.example.com/) 路由至 Web 伺服器。如需詳細資訊,請參閱 Amazon Route 53 開發人員指南或 服務文件中的將流量路由至 Amazon EC2執行個體。 DNS
-
確定 SSL/TLS 憑證是您設定 Web 伺服器使用的憑證。
您現在有一個使用 保護的網站HTTPS。Web 伺服器的私有金鑰會儲存在 AWS CloudHSM 叢集HSM中的 中。
若要新增負載平衡器,請參閱 使用 Elastic Load Balancing 新增負載平衡器 AWS CloudHSM(選用)。