

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

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

本教程提供了在 Windows Web 服务器 AWS CloudHSM 上使用设置 SSL/TLS 卸载的 step-by-step说明。

**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：下一代 (CNG) 的AWS CloudHSM 密钥存储提供程序 (KSP)](ksp-library.md) 提供了一个接口，允许 IIS 使用集群 HSMs 中的进行加密卸载和密钥存储。 AWS CloudHSM KSP 是将 IIS 连接到您的 AWS CloudHSM 集群的桥梁。

本教程介绍如何执行以下操作：
+ 在 Amazon EC2 实例上安装 Web 服务器软件。
+ 使用存储在您的 AWS CloudHSM 集群中的私有密钥将 Web 服务器软件配置为支持 HTTPS。
+ （可选）使用 Amazon EC2 创建第二个 Web 服务器实例，并使用 Elastic Load Balancing 创建负载均衡器。使用负载均衡器可以在多台服务器中分配负载，从而提高性能。它还能在一台或多台服务器发生故障的情况下提供冗余和更高的可用性。

在您准备好开始使用后，请转到 [步骤 1：设置先决条件](#ssl-offload-prerequisites-windows)。

## 步骤 1：设置先决条件
<a name="ssl-offload-prerequisites-windows"></a>

不同的平台需要不同的先决条件。请使用以下与您的平台匹配的先决条件部分。

**Topics**
+ [客户端软件开发工具包 5 的先决条件](#ssl-offload-prerequisites-windows-sdk5)
+ [客户端软件开发工具包 3 的先决条件](#ssl-offload-prerequisites-windows-sdk3)

### 客户端软件开发工具包 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 服务器的私有密钥。

**注意**  
本教程使用微软 Windows Server 2019。还支持 Microsoft Windows Server 2016 和 2022。

**在 HSM 上设置 Windows Server 实例并创建 CU**

1. 完成 [开始使用](getting-started.md) 中的步骤。启动 Amazon EC2 客户端时，选择 Windows Server 2019 AMI。完成这些步骤后，您有一个至少包含一个 HSM 的活动集群。你还有一个运行 Windows 服务器的 Amazon EC2 AWS CloudHSM 客户端实例，其中安装了 Windows 客户端软件。

1. （可选） HSMs 向您的集群添加更多内容。有关更多信息，请参阅 [向集群添加 HS AWS CloudHSM M](add-hsm.md)。

1. 连接到您的 Windows Server。有关详细信息，请参阅《*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 凭据，请[https://live.sysinternals.com/psexec.exe](https://live.sysinternals.com/psexec.exe)从下载并以 *NT Auth SysInternals ority\$1 SYST* EM 的身份运行以下命令：

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

   用 HSM 凭证替换*<USERNAME>*和*<PASSWORD>*。

**在您的 Windows Server 上安装 IIS**

1. 如果您尚未完成此操作，请连接到您的 Windows 服务器。有关详细信息，请参阅《*Amazon EC2 用户指南*》中的[连接到您的实例](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/EC2_GetStarted.html#ec2-connect-to-instance-windows)。

1. 在 Windows 服务器上，启动**服务器管理器**。

1. 在**服务器管理器**控制面板中，选择**添加角色和功能**。

1. 阅读**开始之前**信息，然后选择**下一步**。

1. 对于**安装类型**，选择**基于角色或基于功能的安装**。然后选择**下一步**。

1. 对于**服务器选择**，选择**从服务器池中选择服务器**。然后选择**下一步**。

1. 对于**服务器角色**，请执行以下操作：

   1. 选择 **Web 服务器(IIS)**。

   1. 对于**添加 Web Server (IIS) 所需的功能**，选择**添加功能**。

   1. 选择**下一步**完成选择服务器角色。

1. 对于**功能**，接受默认值。然后选择**下一步**。

1. 阅读 **Web 服务器角色(IIS)** 信息。然后选择**下一步**。

1. 对于**选择角色服务**，接受默认值或根据偏好更改设置。然后选择**下一步**。

1. 对于**确认**，阅读确认信息。然后选择**安装**。

1. 安装完成后，选择**关闭**。

完成这些步骤后，请转到 [步骤 2：创建证书签名请求 (CSR) 和证书](#ssl-offload-windows-create-csr-and-certificate)。

### 客户端软件开发工具包 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。

**在 HSM 上设置 Windows Server 实例并创建 CU**

1. 完成 [开始使用](getting-started.md) 中的步骤。启动 Amazon EC2 客户端时，选择 Windows Server 2016 或 Windows Server 2012 AMI。完成这些步骤后，您有一个至少包含一个 HSM 的活动集群。你还有一个运行 Windows 服务器的 Amazon EC2 AWS CloudHSM 客户端实例，其中安装了 Windows 客户端软件。

1. （可选） HSMs 向您的集群添加更多内容。有关更多信息，请参阅 [向集群添加 HS AWS CloudHSM M](add-hsm.md)。

1. 连接到您的 Windows Server。有关详细信息，请参阅《*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 凭据，请[https://live.sysinternals.com/psexec.exe](https://live.sysinternals.com/psexec.exe)从下载并以 *NT Auth SysInternals ority\$1 SYST* EM 的身份运行以下命令：

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

   用 HSM 凭证替换*<USERNAME>*和*<PASSWORD>*。

**在您的 Windows Server 上安装 IIS**

1. 如果您尚未完成此操作，请连接到您的 Windows 服务器。有关详细信息，请参阅《*Amazon EC2 用户指南*》中的[连接到您的实例](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/EC2_GetStarted.html#ec2-connect-to-instance-windows)。

1. 在 Windows 服务器上，启动**服务器管理器**。

1. 在**服务器管理器**控制面板中，选择**添加角色和功能**。

1. 阅读**开始之前**信息，然后选择**下一步**。

1. 对于**安装类型**，选择**基于角色或基于功能的安装**。然后选择**下一步**。

1. 对于**服务器选择**，选择**从服务器池中选择服务器**。然后选择**下一步**。

1. 对于**服务器角色**，请执行以下操作：

   1. 选择 **Web 服务器(IIS)**。

   1. 对于**添加 Web Server (IIS) 所需的功能**，选择**添加功能**。

   1. 选择**下一步**完成选择服务器角色。

1. 对于**功能**，接受默认值。然后选择**下一步**。

1. 阅读 **Web 服务器角色(IIS)** 信息。然后选择**下一步**。

1. 对于**选择角色服务**，接受默认值或根据偏好更改设置。然后选择**下一步**。

1. 对于**确认**，阅读确认信息。然后选择**安装**。

1. 安装完成后，选择**关闭**。

完成这些步骤后，请转到 [步骤 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：下一代 (CNG) 的AWS CloudHSM 密钥存储提供程序 (KSP)](ksp-v3-library.md) 来创建证书签名请求 (CSR)。然后，您向证书颁发机构 (CA) 提供 CSR，该机构负责签署 CSR 以生成证书。

**Topics**
+ [使用 Client SDK 5 创建 CSR](#ssl-offload-windows-create-csr-new-version)
+ [使用 Client SDK 3 创建 CSR](#ssl-offload-windows-create-csr-old-version)
+ [获取签名证书并导入](#ssl-offload-windows-create-certificate)

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

1. 在您的 Windows Server 上，使用文本编辑器创建一个名为 `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*替换为相应的文件名。您可以选择将 CSR 文件*IISCertRequest.csr*替换为不同的文件名。

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

   `IISCertRequest.csr` 文件包含您的 CSR。您需要此 CSR 才能获取签名证书。

### 使用 Client 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 以上版本：

     ```
     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 Server 上，使用文本编辑器创建一个名为 `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*替换为相应的文件名。您可以选择将 CSR 文件*IISCertRequest.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 证书。这将完成你的 Windows Web 服务器软件 (IIS) 的设置以供 SSL/TLS 卸载。 AWS CloudHSM

如果您使用了自签名证书签署 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 Server。

1. 在 Windows Server 上，打开 **Control Panel (控制面板)**。

1. 对于**搜索控制面板**，键入 **certificates**。然后选择**管理计算机证书**。

1. 在**证书 - 本地计算机**窗口中，双击**受信任的根证书颁发机构**。

1. 右键单击**证书**，然后选择**所有任务**、**导入**。

1. 在**证书导入向导** 中，选择**下一步**。

1. 选择**浏览**，然后找到并选择您的自签名证书。如果按照[本教程的上一步](#ssl-offload-windows-create-csr-and-certificate)中的说明创建了您的自签名证书，则您的自签名证书将命名为 `SelfSignedCA.crt`。选择**打开**。

1. 选择**下一步**。

1. 对于**证书存储**，选择**将所有证书置于以下存储中**。然后，确保针对**证书存储**选中**受信任的根证书颁发机构**。

1. 选择**下一步**，然后选择**完成**。

**更新 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. 将您在[本教程的上一步](#ssl-offload-windows-create-csr-and-certificate)中创建的 Web 服务器的签名证书复制到您的 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 服务器上，启动**服务器管理器**。

1. 在**服务器管理器**控制面板的右上角，选择**工具**、**Internet Information Services (IIS)管理器**。

1. 在 **Internet Information Services (IIS)管理器**窗口中，双击您的服务器名称。然后双击**网站**。选择您的网站。

1. 选择 **SSL 设置**。然后，在窗口左侧选择**绑定**。

1. 在**网站绑定** 窗口中，选择**添加**。

1. 对于**类型**，选择 **https**。对于 **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 连接。将此安全组分配给您的网络服务器。

**为 HTTPS 创建安全组并将其分配给您的网络服务器**

1. 打开位于 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 的 Amazon EC2 控制台。

1. 在导航窗格中，选择**安全组**。

1. 选择**创建安全组**。

1. 对于**创建安全组**，执行以下操作：

   1. 对于**安全组名称**，键入您要创建的安全组的名称。

   1. (可选) 键入对您要创建的安全组的描述。

   1. 对于 **VPC**，选择包含您的 Web 服务器 Amazon EC2 实例的 VPC。

   1. 选择**添加规则**。

   1. 对于**类型**，从下拉窗口中选择 **HTTPS**。

   1. 对于**来源**，输入来源位置。

   1. 选择**创建安全组**。

1. 在导航窗格中，选择**实例**。

1. 选中您的 Web 服务器实例旁边的复选框。

1. 在页面顶部选择**操作**下拉菜单。选择**安全**，然后选择**更改安全组**。

1. 对于**关联安全组**，请选择搜索框，然后选择您为 HTTPS 创建的安全组。然后选择**添加安全组**。

1. 选择**保存**。

### 验证 HTTPS 使用的是您已配置的证书
<a name="ssl-offload-verify-https-connection-windows"></a>

将 Web 服务器添加到安全组后，您可以验证 SSL/TLS 卸载是否使用您的自签名证书。您可以使用网络浏览器或使用工具 (如 [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/**。
**提示**  
您可以使用诸如 Amazon Route 53 之类的 DNS 服务将您网站的域名（例如 https://www.example.com/）路由到您的网络服务器。有关更多信息，请参阅 *《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 Support 网站上的[查看证书](https://support.mozilla.org/en-US/kb/secure-website-certificate#w_view-a-certificate)。
   + 关于 Google Chrome 浏览器，请参阅 Google Tools for Web Developers 网站上的[了解安全问题](https://developers.google.com/web/tools/chrome-devtools/security)。

   其他网络浏览器可能具有相似的功能，可使用这些功能来查看网络服务器证书。

1. 确保该 SSL/TLS 证书是您配置的 Web 服务器要使用的证书。

**使用 OpenSSL s\$1client 验证 SSL/TLS 卸载**

1. 运行以下 OpenSSL 命令以通过 HTTPS 连接到您的 Web 服务器。*<server name>*替换为您的 Web 服务器的公有 DNS 名称或 IP 地址。

   ```
   openssl s_client -connect <server name>:443
   ```
**提示**  
您可以使用诸如 Amazon Route 53 之类的 DNS 服务将您网站的域名（例如 https://www.example.com/）路由到您的网络服务器。有关更多信息，请参阅 *《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 添加负载均衡器 AWS CloudHSM（可选）](third-offload-add-lb.md)。