

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

# AWS CloudHSM 在 Windows 上使用 IIS 搭配 KSP 的 SSL/TLS 卸載
<a name="ssl-offload-windows"></a>

本教學提供在 Windows Web 伺服器上設定 SSL/TLS 卸載搭配 AWS CloudHSM 的逐步說明。

**Topics**
+ [概觀](#ssl-offload-windows-overview)
+ [步驟 1：設定先決條件](#ssl-offload-prerequisites-windows)
+ [步驟 2：建立憑證簽署要求 (CSR) 和憑證](#ssl-offload-windows-create-csr-and-certificate)
+ [步驟 3：設定 Web 伺服器](#ssl-offload-configure-web-server-windows)
+ [步驟 4：啟用 HTTPS 流量並驗證憑證](#ssl-offload-enable-traffic-and-verify-certificate-windows)

## 概觀
<a name="ssl-offload-windows-overview"></a>

在 Windows 上，[Internet Information Services (IIS) for Windows Server](https://www.iis.net/) Web 伺服器應用程式原本就支援 HTTPS。[適用於 Microsoft 加密 API 之AWS CloudHSM 金鑰儲存供應商 (KSP)：下一代 (CNG)](ksp-library.md) 提供的界面，可讓 IIS 在您的叢集中使用 HSM，進行密碼編譯卸載和金鑰儲存。 AWS CloudHSM KSP 是將 IIS 連接到 AWS CloudHSM 叢集的橋接器。

此教學課程會讓您了解如何執行以下操作：
+ 在 Amazon EC2 執行個體上安裝 Web 伺服器軟體。
+ 將 Web 伺服器軟體設定為使用儲存在 AWS CloudHSM 叢集中的私有金鑰來支援 HTTPS。
+ (選用) 使用 Amazon EC2 建立第二個 Web 伺服器執行個體，并使用 Elastic Load Balancing 建立負載平衡器。使用負載平衡器可將負載分散到多部伺服器，進而提升效能。它也可以在一或多個伺服器失敗時提供備援和高可用性。

當您準備好開始時，請移至[步驟 1：設定先決條件](#ssl-offload-prerequisites-windows)。

## 步驟 1：設定先決條件
<a name="ssl-offload-prerequisites-windows"></a>

不同平台需要不同的先決條件。請使用下方符合您平台的先決條件區段。

**Topics**
+ [用戶端 SDK 5 的先決條件](#ssl-offload-prerequisites-windows-sdk5)
+ [用戶端 SDK 3 的先決條件](#ssl-offload-prerequisites-windows-sdk3)

### 用戶端 SDK 5 的先決條件
<a name="ssl-offload-prerequisites-windows-sdk5"></a>

若要使用 設定 Web 伺服器 SSL/TLS 卸載 AWS CloudHSM，您需要下列項目：
+ 具有至少一個 HSM 的作用中 AWS CloudHSM 叢集。
+ 執行 Windows 作業系統的 Amazon EC2 執行個體，其中已安裝下列軟體：
  + 適用於 Windows 的 AWS CloudHSM 用戶端軟體。
  + Internet Information Services (IIS) for Windows Server。
+ [加密使用者](understanding-users.md#crypto-user-chsm-cli) (CU)，擁有及管理 HSM 上 Web 伺服器的私有金鑰。

**注意**  
本教學課程使用 Microsoft Windows Server 2019。也支援 Microsoft Windows Server 2016 和 2022。

**設定 Windows 伺服器執行個體，並在 HSM 上建立 CU**

1. 完成「[開始使用](getting-started.md)」中的步驟。當您啟動 Amazon EC2 用戶端時，請選擇 Windows Server 2019 AMI。當您完成這些步驟，便擁有至少包含一個 HSM 的作用中叢集。您也擁有執行 Windows Server 並安裝 Windows 用戶端軟體的 Amazon EC2 AWS CloudHSM 用戶端執行個體。

1. (選用) 在您的叢集中新增更多 HSM。如需詳細資訊，請參閱[將 HSM 新增至 AWS CloudHSM 叢集](add-hsm.md)。

1. 連接至 Windows 伺服器。如需詳細資訊，請參閱《*Amazon EC2 使用者指南*》中的[連線至您的執行個體](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/EC2_GetStarted.html#ec2-connect-to-instance-windows)。

1. 使用 CloudHSM CLI 建立加密使用者 (CU)。保持追蹤 CU 使用者名稱和密碼。您需要它們來完成下一個步驟。
**注意**  
如需如何建立使用者的詳細資訊，請參閱[使用 CloudHSM CLI 管理 HSM 使用者](manage-hsm-users-chsm-cli.md)。

1. 使用您在先前步驟中建立的 CU 使用者名稱和密碼，[設定 HSM 的登入資料](ksp-library-authentication.md)。

1. 在步驟 5 中，如果您使用 Windows 認證管理員來設定 HSM 登入資料，請從 SysInternals 下載 [https://live.sysinternals.com/psexec.exe](https://live.sysinternals.com/psexec.exe)，以 *NT Authority\$1SYSTEM* 的身分執行下列命令：

   ```
   psexec.exe -s "C:\Program Files\Amazon\CloudHsm\tools\set_cloudhsm_credentials.exe" --username <USERNAME> --password <PASSWORD>
   ```

   以 HSM 憑證取代*<使用者名稱>*和*<密碼>*。

**在 Windows 伺服器上安裝 IIS**

1. 如果您尚未這麼做，請連接至您的 Windows 伺服器。如需詳細資訊，請參閱《*Amazon EC2 使用者指南*》中的[連線至您的執行個體](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/EC2_GetStarted.html#ec2-connect-to-instance-windows)。

1. 在 Windows 伺服器上，啟動 **Server Manager (伺服器管理員)**。

1. 在 **Server Manager (伺服器管理員)** 儀表板中，選擇 **Add roles and features (新增角色和功能)**。

1. 閱讀 **Before you begin (開始之前)** 資訊，然後選擇 **Next (下一步)**。

1. 對於 **Installation Type (安裝類型)**，選擇 **Role-based or feature-based installation (角色型或功能型安裝)**。然後選擇**下一步**。

1. 對於 **Server Selection (伺服器選項)**，選擇 **Select a server from the server pool (從伺服器集區選取伺服器)**。然後選擇**下一步**。

1. 對於 **Server Roles (伺服器角色)**，執行下列動作：

   1. 選取 **Web Server (IIS) (Web 伺服器 (IIS))**。

   1. 對於 **Add features that are required for Web Server (IIS) (新增 Web 伺服器 (IIS) 需要的功能)**，選擇 **Add Features (新增功能)**。

   1. 選擇 **Next (下一步)** 來完成伺服器角色的選取。

1. 針對 **Features (功能)**，接受預設。然後選擇**下一步**。

1. 閱讀 **Web Server Role (IIS) (Web 伺服器角色 (IIS))** 資訊。然後選擇**下一步**。

1. 對於 **Select role services (選取角色服務)**，接受預設值或變更為偏好的設定。然後選擇**下一步**。

1. 針對 **Confirmation (確認)**，閱讀確認資訊。然後選擇 **Install (安裝)**。

1. 完成安裝之後，請選擇 **Close (關閉)**。

完成這些步驟之後，請移至 [步驟 2：建立憑證簽署要求 (CSR) 和憑證](#ssl-offload-windows-create-csr-and-certificate)。

### 用戶端 SDK 3 的先決條件
<a name="ssl-offload-prerequisites-windows-sdk3"></a>

若要使用 設定 Web 伺服器 SSL/TLS 卸載 AWS CloudHSM，您需要下列項目：
+ 具有至少一個 HSM 的作用中 AWS CloudHSM 叢集。
+ 執行 Windows 作業系統的 Amazon EC2 執行個體，其中已安裝下列軟體：
  + 適用於 Windows 的 AWS CloudHSM 用戶端軟體。
  + Internet Information Services (IIS) for Windows Server。
+ [加密使用者](understanding-users.md#crypto-user-chsm-cli) (CU)，擁有及管理 HSM 上 Web 伺服器的私有金鑰。

**注意**  
本教學課程使用 Microsoft Windows Server 2016。也支援 Microsoft Windows Server 2012，但不支援 Microsoft Windows Server 2012 R2。

**設定 Windows 伺服器執行個體，並在 HSM 上建立 CU**

1. 完成「[開始使用](getting-started.md)」中的步驟。當您啟動 Amazon EC2 用戶端時，請選擇 Windows Server 2016 或 Windows Server 2012 AMI。當您完成這些步驟，便擁有至少包含一個 HSM 的作用中叢集。您也擁有執行 Windows Server 並安裝 Windows 用戶端軟體的 Amazon EC2 AWS CloudHSM 用戶端執行個體。

1. (選用) 在您的叢集中新增更多 HSM。如需詳細資訊，請參閱[將 HSM 新增至 AWS CloudHSM 叢集](add-hsm.md)。

1. 連接至 Windows 伺服器。如需詳細資訊，請參閱《*Amazon EC2 使用者指南*》中的[連線至您的執行個體](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/EC2_GetStarted.html#ec2-connect-to-instance-windows)。

1. 使用 CloudHSM CLI 建立加密使用者 (CU)。保持追蹤 CU 使用者名稱和密碼。您需要它們來完成下一個步驟。
**注意**  
如需如何建立使用者的詳細資訊，請參閱[使用 CloudHSM CLI 管理 HSM 使用者](manage-hsm-users-chsm-cli.md)。

1. 使用您在先前步驟中建立的 CU 使用者名稱和密碼，[設定 HSM 的登入資料](ksp-library-prereq.md)。

1. 在步驟 5 中，如果您使用 Windows 認證管理員來設定 HSM 登入資料，請從 SysInternals 下載 [https://live.sysinternals.com/psexec.exe](https://live.sysinternals.com/psexec.exe)，以 *NT Authority\$1SYSTEM* 的身分執行下列命令：

   ```
   psexec.exe -s "C:\Program Files\Amazon\CloudHsm\tools\set_cloudhsm_credentials.exe" --username <USERNAME> --password <PASSWORD>
   ```

   以 HSM 憑證取代*<使用者名稱>*和*<密碼>*。

**在 Windows 伺服器上安裝 IIS**

1. 如果您尚未這麼做，請連接至您的 Windows 伺服器。如需詳細資訊，請參閱《*Amazon EC2 使用者指南*》中的[連線至您的執行個體](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/EC2_GetStarted.html#ec2-connect-to-instance-windows)。

1. 在 Windows 伺服器上，啟動 **Server Manager (伺服器管理員)**。

1. 在 **Server Manager (伺服器管理員)** 儀表板中，選擇 **Add roles and features (新增角色和功能)**。

1. 閱讀 **Before you begin (開始之前)** 資訊，然後選擇 **Next (下一步)**。

1. 對於 **Installation Type (安裝類型)**，選擇 **Role-based or feature-based installation (角色型或功能型安裝)**。然後選擇**下一步**。

1. 對於 **Server Selection (伺服器選項)**，選擇 **Select a server from the server pool (從伺服器集區選取伺服器)**。然後選擇**下一步**。

1. 對於 **Server Roles (伺服器角色)**，執行下列動作：

   1. 選取 **Web Server (IIS) (Web 伺服器 (IIS))**。

   1. 對於 **Add features that are required for Web Server (IIS) (新增 Web 伺服器 (IIS) 需要的功能)**，選擇 **Add Features (新增功能)**。

   1. 選擇 **Next (下一步)** 來完成伺服器角色的選取。

1. 針對 **Features (功能)**，接受預設。然後選擇**下一步**。

1. 閱讀 **Web Server Role (IIS) (Web 伺服器角色 (IIS))** 資訊。然後選擇**下一步**。

1. 對於 **Select role services (選取角色服務)**，接受預設值或變更為偏好的設定。然後選擇**下一步**。

1. 針對 **Confirmation (確認)**，閱讀確認資訊。然後選擇 **Install (安裝)**。

1. 完成安裝之後，請選擇 **Close (關閉)**。

完成這些步驟之後，請移至 [步驟 2：建立憑證簽署要求 (CSR) 和憑證](#ssl-offload-windows-create-csr-and-certificate)。

## 步驟 2：建立憑證簽署要求 (CSR) 和憑證
<a name="ssl-offload-windows-create-csr-and-certificate"></a>

若要啟用 HTTPS，您的 Web 伺服器需要 SSL/TLS 憑證和對應私有金鑰。若要搭配 SSL/TLS 卸載使用 AWS CloudHSM，請將私有金鑰存放在叢集的 HSM 中 AWS CloudHSM 。為此，請使用[適用於 Microsoft 密碼編譯 API 的AWS CloudHSM 金鑰儲存供應商 (KSP)：下一代 (CNG)](ksp-v3-library.md) 建立憑證簽署請求 (CSR)。然後，將 CSR 提供給憑證授權機構 (CA)，其會簽署 CSR 以產生憑證。

**Topics**
+ [使用用戶端 SDK 5 建立 CSR](#ssl-offload-windows-create-csr-new-version)
+ [使用用戶端 SDK 3 建立 CSR](#ssl-offload-windows-create-csr-old-version)
+ [取得已簽署的憑證並匯入它](#ssl-offload-windows-create-certificate)

### 使用用戶端 SDK 5 建立 CSR
<a name="ssl-offload-windows-create-csr-new-version"></a>

1. 在 Windows 伺服器上，使用文字編輯器來建立名為 `IISCertRequest.inf` 的憑證要求檔案。下列示範範例 `IISCertRequest.inf` 檔案的內容。如需您可在檔案中指定之區段、金鑰和數值的詳細資訊，請參閱 [Microsoft 文件](https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/certreq_1#BKMK_New)。請勿變更 `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 = "CloudHSM Key Storage Provider"
   KeyUsage = 0xf0
   MachineKeySet = True
   [EnhancedKeyUsageExtension]
   OID=1.3.6.1.5.5.7.3.1
   ```

1. 使用 [Windows **certreq**命令](https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/certreq_1)從您在上一個步驟中建立`IISCertRequest.inf`的檔案建立 CSR。以下範例會將 CSR 儲存至名為 `IISCertRequest.csr` 的檔案。如果您對憑證要求檔案使用不同的檔案名稱，請將 *IISCertRequest.inf* 取代為適當的檔案名稱。您可以選擇性地將 * IISCertRequest.csr* 取代為 CSR 檔案的不同檔案名稱。

   ```
   C:\>certreq -new IISCertRequest.inf IISCertRequest.csr
   
   CertReq: Request Created
   ```

   `IISCertRequest.csr` 檔案包含您的 CSR。您需要此 CSR 才能取得已簽署的憑證。

### 使用用戶端 SDK 3 建立 CSR
<a name="ssl-offload-windows-create-csr-old-version"></a>

1. 如果您尚未這麼做，請連接至您的 Windows 伺服器。如需詳細資訊，請參閱《*Amazon EC2 使用者指南*》中的[連線至您的執行個體](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/EC2_GetStarted.html#ec2-connect-to-instance-windows)。

1. 使用下列命令啟動 AWS CloudHSM 用戶端常駐程式。

------
#### [ Amazon Linux ]

   ```
   $ sudo start cloudhsm-client
   ```

------
#### [ Amazon Linux 2 ]

   ```
   $ sudo service cloudhsm-client start
   ```

------
#### [ CentOS 7 ]

   ```
   $ sudo service cloudhsm-client start
   ```

------
#### [ CentOS 8 ]

   ```
   $ sudo service cloudhsm-client start
   ```

------
#### [ RHEL 7 ]

   ```
   $ sudo service cloudhsm-client start
   ```

------
#### [ RHEL 8 ]

   ```
   $ sudo service cloudhsm-client start
   ```

------
#### [ Ubuntu 16.04 LTS ]

   ```
   $ sudo service cloudhsm-client start
   ```

------
#### [ Ubuntu 18.04 LTS ]

   ```
   $ sudo service cloudhsm-client start
   ```

------
#### [ Windows ]
   + 用於 Windows 用戶端 1.1.2\$1：

     ```
     C:\Program Files\Amazon\CloudHSM>net.exe start AWSCloudHSMClient
     ```
   + 用於 Windows 用戶端 1.1.1 和更早版本：

     ```
     C:\Program Files\Amazon\CloudHSM>start "cloudhsm_client" cloudhsm_client.exe C:\ProgramData\Amazon\CloudHSM\data\cloudhsm_client.cfg
     ```

------

1. 在 Windows 伺服器上，使用文字編輯器來建立名為 `IISCertRequest.inf` 的憑證要求檔案。下列示範範例 `IISCertRequest.inf` 檔案的內容。如需您可在檔案中指定之區段、金鑰和數值的詳細資訊，請參閱 [Microsoft 文件](https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/certreq_1#BKMK_New)。請勿變更 `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
   ```

1. 使用 [Windows **certreq**命令](https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/certreq_1)從您在上一個步驟中建立`IISCertRequest.inf`的檔案建立 CSR。以下範例會將 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 才能取得已簽署的憑證。

### 取得已簽署的憑證並匯入它
<a name="ssl-offload-windows-create-certificate"></a>

在生產環境中，您通常會使用憑證授權單位 (CA) 從 CSR 建立憑證。測試環境不需要 CA。如果您使用 CA，請將 CSR 檔案 (`IISCertRequest.csr`) 傳送至其中，並使用 CA 來建立已簽署的 SSL/TLS 憑證。

除了使用 CA，您也可以使用 [OpenSSL](https://www.openssl.org/) 之類的工具來建立自簽憑證。

**警告**  
自簽憑證不受瀏覽器所信任，請勿用於生產環境。可以用於測試環境。

以下程序示範如何建立自簽憑證，並使用它來簽署 Web 伺服器 CSR。

**建立自簽憑證**

1. 使用下列 OpenSSL 命令來建立私有金鑰。您可以選擇性地將 *SelfSignedCA.key* 取代為檔案名稱，以包含您的私有金鑰。

   ```
   openssl genrsa -aes256 -out SelfSignedCA.key 2048
   Generating RSA private key, 2048 bit long modulus
   ......................................................................+++
   .........................................+++
   e is 65537 (0x10001)
   Enter pass phrase for SelfSignedCA.key:
   Verifying - Enter pass phrase for SelfSignedCA.key:
   ```

1. 使用以下 OpenSSL 命令，以使用您在前一個步驟中建立之私有金鑰來建立自簽憑證。這是互動式命令。請閱讀畫面上的指示，並依照提示操作。將 *SelfSignedCA.key* 取代為包含私有金鑰之檔案的名稱 (若不同的話)。您可以選擇性地將 *SelfSignedCA.crt* 取代為檔案名稱，以包含您的自簽憑證。

   ```
   openssl req -new -x509 -days 365 -key SelfSignedCA.key -out SelfSignedCA.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 \
                              -CA SelfSignedCA.crt \
                              -CAkey SelfSignedCA.key \
                              -CAcreateserial \
                              -out IISCert.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 伺服器](#ssl-offload-configure-web-server-windows)。

## 步驟 3：設定 Web 伺服器
<a name="ssl-offload-configure-web-server-windows"></a>

更新您的 IIS網站組態，來使用您在[前一個步驟](#ssl-offload-windows-create-csr-and-certificate)結束時建立的 HTTPS 憑證。這將完成針對 SSL/TLS 卸載搭配 AWS CloudHSM設定您的 Windows Web 伺服器軟體 (IIS)。

如果已使用自簽憑證來簽署 CSR，則您必須先將自簽憑證匯入至 Windows 受信任的根認證授權單位。

**將自簽憑證匯入至 Windows 受信任的根認證授權單位**

1. 如果您尚未這麼做，請連接至您的 Windows 伺服器。如需詳細資訊，請參閱《*Amazon EC2 使用者指南*》中的[連線至您的執行個體](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/EC2_GetStarted.html#ec2-connect-to-instance-windows)。

1. 將自簽憑證複製到 Windows 伺服器。

1. 在 Windows 伺服器上，開啟 **Control Panel (控制台)**。

1. 針對 **Search Control Panel (搜尋控制台)**，輸入 **certificates**。然後選擇 **Manage computer certificates (管理電腦憑證)**。

1. 在**憑證 - 本機電腦**視窗中，按兩下**信任的根憑證授權機構**。

1. 用滑鼠右鍵按一下 **Certificates (憑證)**，然後選擇 **All Tasks (所有工作)**、**Import (匯入)**。

1. 在 **Certificate Import Wizard (憑證匯入精靈)** 中，選擇 **Next (下一步)**。

1. 選擇 **Browse (瀏覽)**，然後尋找並選取您的自簽憑證。如果您已遵循[本教學課程前一個步驟](#ssl-offload-windows-create-csr-and-certificate)中的指示來建立自簽憑證，則您的自簽憑證即名為 `SelfSignedCA.crt`。選擇 **Open** (開啟)。

1. 選擇**下一步**。

1. 對於 **Certificate Store (憑證存放區)**，選擇 **Place all certificates in the following store (將所有憑證放入以下存放區)**。然後，確保選取 **Trusted Root Certification Authorities (受信任的根認證授權單位)** 做為 **Certificate store(憑證存放區)**。

1. 選擇 **Next (下一步)** ，然後選擇 **Finish (完成)**。

**更新 IIS 網站組態**

1. 如果您尚未這麼做，請連接至您的 Windows 伺服器。如需詳細資訊，請參閱《*Amazon EC2 使用者指南*》中的[連線至您的執行個體](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/EC2_GetStarted.html#ec2-connect-to-instance-windows)。

1. 啟動 AWS CloudHSM 用戶端協助程式。

1. 將 Web 伺服器的已簽署憑證 (這是您在[本教學課程前一個步驟](#ssl-offload-windows-create-csr-and-certificate)結束時建立的憑證) 複製到 Windows 伺服器。

1. 在 Windows Server 上，使用 [Windows **certreq**命令](https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/certreq_1)來接受簽署的憑證，如下列範例所示。將 *IISCert.crt* 取代為包含 Web 伺服器的已簽署憑證之檔案的名稱。

   ```
   C:\>certreq -accept IISCert.crt
           SDK Version: 2.03
   ```

1. 在 Windows 伺服器上，啟動 **Server Manager (伺服器管理員)**。

1. 在 **Server Manager (伺服器管理員)** 儀表板右上角，選擇 **Tools (工具)**、**Internet Information Services (IIS) Manager (Internet Information Services (IIS) 管理員)**。

1. 在 **Internet Information Services (IIS) Manager (Internet Information Services (IIS) 管理員)** 視窗中，按兩下您的伺服器名稱。然後按兩下 **Sites (網站)**。選取網站。

1. 選取 **SSL Settings (SSL 設定)**。然後，在視窗右側選擇 **Bindings (繫結)**。

1. 在 **Site Bindings (網站繫結)** 視窗中，選擇 **Add (新增)**。

1. 對於 **Type (類型)**，選擇 **https (https)**。對於 ** SSL certificate (SSL 憑證)**，選擇您在[本教學課程前一個步驟](#ssl-offload-windows-create-csr-and-certificate)結束時建立的 HTTPS 憑證。
**注意**  
如果您在此次憑證繫結中遇到錯誤，請重新啟動您的伺服器並重試此步驟。

1. 選擇**確定**。

在更新網站組態之後，請移至[步驟 4：啟用 HTTPS 流量並驗證憑證](#ssl-offload-enable-traffic-and-verify-certificate-windows)。

## 步驟 4：啟用 HTTPS 流量並驗證憑證
<a name="ssl-offload-enable-traffic-and-verify-certificate-windows"></a>

使用 設定 Web 伺服器進行 SSL/TLS 卸載後 AWS CloudHSM，請將 Web 伺服器執行個體新增至允許傳入 HTTPS 流量的安全群組。這可讓用戶端 (例如 Web 瀏覽器) 與 Web 伺服器建立 HTTPS 連線。然後，對 Web 伺服器進行 HTTPS 連線，並確認其使用您為 SSL/TLS 卸載設定的憑證 AWS CloudHSM。

**Topics**
+ [啟用傳入 HTTPS 連線](#ssl-offload-add-security-group-windows)
+ [驗證 HTTPS 是否使用您已設定的憑證](#ssl-offload-verify-https-connection-windows)

### 啟用傳入 HTTPS 連線
<a name="ssl-offload-add-security-group-windows"></a>

若要從用戶端 (例如 Web 瀏覽器) 連接到 Web 伺服器，請建立允許傳入 HTTPS 連接的安全群組。特別是應該允許連接埠 443 上的傳入 TCP 連線。將此安全群組指派到您的 Web 伺服器。

**建立 HTTPS 的安全群組並將其指派至您的 Web 伺服器**

1. 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

1. 在導覽窗格中選擇**安全群組**。

1. 選擇**建立安全群組**。

1. 對於 **Create Security Group (建立安全群組)**，執行下列動作：

   1. 對於 **Security group name (安全群組名稱)**，輸入您要建立之安全群組的名稱。

   1. (選用) 輸入您要建立之安全群組的描述。

   1. 對於 **VPC**，選擇包含 Web 伺服器 Amazon EC2 執行個體的 VPC。

   1. 選取 **Add Rule (新增規則)**。

   1. 對於**類型**，從下拉式視窗中選取 **HTTPS**。

   1. 對於**來源**，輸入來源位置。

   1. 選擇**建立安全群組**。

1. 在導覽窗格中，選擇**執行個體**。

1. 選取 Web 伺服器執行個體旁的核取方塊。

1. 選取頁面頂端的**動作**下拉式選單。選取**安全性**，然後選取**變更安全群組**。

1. 對於**關聯的安全群組**，請選取搜尋方塊，然後選取您為 HTTPS 建立之安全群組。然後選擇**新增安全群組**。

1. 選取**儲存**。

### 驗證 HTTPS 是否使用您已設定的憑證
<a name="ssl-offload-verify-https-connection-windows"></a>

將 Web 伺服器新增至安全群組後，您可以驗證 SSL/TLS 卸載是否使用您的自我簽署憑證。若要這樣做，您可以使用 Web 瀏覽器或使用 [OpenSSL s\$1client](https://www.openssl.org/docs/manmaster/man1/s_client.html) 之類的工具。

**使用 Web 瀏覽器驗證 SSL/TLS 卸載**

1. 使用 Web 瀏覽器來透過伺服器的公有 DNS 名稱或 IP 地址連接到您的 Web 伺服器。請確定網址列中的 URL 開頭為 https://。例如 **https://ec2-52-14-212-67.us-east-2.compute.amazonaws.com/**。
**提示**  
您可以使用 DNS 服務 (例如 Amazon Route 53)，將網站的網域名稱 (例如，https://www.example.com/) 路由到 Web 伺服器。如需詳細資訊，請參閱《Amazon Route 53 開發人員指南》**或 DNS 服務文件中的[將流量路由到 Amazon EC2 執行個體](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-to-ec2-instance.html)。

1. 使用您的 Web 瀏覽器來檢視 Web 伺服器憑證。如需詳細資訊，請參閱下列內容：
   + 若為 Mozilla Firefox，請參閱 Mozilla 技術支援網站上的[檢視憑證](https://support.mozilla.org/en-US/kb/secure-website-certificate#w_view-a-certificate)。
   + 若為 Google Chrome，請參閱 Google Web 開發人員工具網站上的[了解安全問題](https://developers.google.com/web/tools/chrome-devtools/security)。

   其他 Web 瀏覽器可能有類似的功能，可供您用來檢視 Web 伺服器憑證。

1. 確保 SSL/TLS 憑證是您設定 Web 伺服器所要使用的憑證。

**使用 OpenSSL s\$1client 來驗證 SSL/TLS 卸載**

1. 執行以下 OpenSSL 命令來使用 HTTPS 連接至 Web 伺服器。以 Web 伺服器的公有 DNS 名稱或 IP 地址來取代*<伺服器名稱>*。

   ```
   openssl s_client -connect <server name>:443
   ```
**提示**  
您可以使用 DNS 服務 (例如 Amazon Route 53)，將網站的網域名稱 (例如，https://www.example.com/) 路由到 Web 伺服器。如需詳細資訊，請參閱《Amazon Route 53 開發人員指南》**或 DNS 服務文件中的[將流量路由到 Amazon EC2 執行個體](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-to-ec2-instance.html)。

1. 確保 SSL/TLS 憑證是您設定 Web 伺服器所要使用的憑證。

您現在有透過 HTTPS 而受到保護的網站。Web 伺服器的私有金鑰會存放在 AWS CloudHSM 叢集的 HSM 中。

若要新增負載平衡器，請參閱 [使用 Elastic Load Balancing for 新增負載平衡器 AWS CloudHSM（選用）](third-offload-add-lb.md)。