

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

# 启用双向认证 AWS Client VPN
<a name="client-auth-mutual-enable"></a>

你可以在 Windows Linux/MacOS 或 Windows 的 Client VPN 中启用双向身份验证。

------
#### [ Linux/macOS ]

以下过程使用 OpenVPN easy-rsa 生成服务器和客户端证书和密钥，然后将服务器证书和密钥上传到 ACM。有关更多信息，请参阅 [Easy-RSA 3 快速入门自述文件](https://github.com/OpenVPN/easy-rsa/blob/v3.0.6/README.quickstart.md)。

**生成服务器和客户端证书和密钥并将其上传到 ACM**

1. 将 OpenVPN easy-rsa 存储库克隆到本地计算机并导航到 `easy-rsa/easyrsa3` 文件夹。

   ```
   $ git clone https://github.com/OpenVPN/easy-rsa.git
   ```

   ```
   $ cd easy-rsa/easyrsa3
   ```

1. 初始化一个新的 PKI 环境。

   ```
   $ ./easyrsa init-pki
   ```

1. 要构建新的证书颁发机构（CA），请运行此命令并按照提示进行操作。

   ```
   $ ./easyrsa build-ca nopass
   ```

1. 生成服务器证书和密钥。

   ```
   $ ./easyrsa --san=DNS:server build-server-full server nopass
   ```

1. 生成客户端证书和密钥。

   请务必保存客户端证书和客户端私有密钥，因为您配置客户端时需要这些信息。

   ```
   $ ./easyrsa build-client-full client1.domain.tld nopass
   ```

   您可以选择为需要客户端证书和密钥的每个客户端（最终用户）重复此步骤。

1. 将服务器证书和密钥和客户端证书和密钥复制到自定义文件夹，然后导航到此自定义文件夹。

   复制证书和密钥之前，请使用 `mkdir` 命令创建自定义文件夹。以下示例在您的主目录中创建自定义文件夹。

   ```
   $ mkdir ~/custom_folder/
   $ cp pki/ca.crt ~/custom_folder/
   $ cp pki/issued/server.crt ~/custom_folder/
   $ cp pki/private/server.key ~/custom_folder/
   $ cp pki/issued/client1.domain.tld.crt ~/custom_folder
   $ cp pki/private/client1.domain.tld.key ~/custom_folder/
   $ cd ~/custom_folder/
   ```

1. 将服务器证书和密钥以及客户端证书和密钥上传到 ACM。请确保在您打算在其中创建客户端 VPN 终端节点的同一区域中上传证书。以下命令使用 AWS CLI 上传证书。要改为使用 ACM 控制台上传证书，请参阅 *AWS Certificate Manager 用户指南*中的[导入证书](https://docs.aws.amazon.com/acm/latest/userguide/import-certificate-api-cli.html)。

   ```
   $ aws acm import-certificate --certificate fileb://server.crt --private-key fileb://server.key --certificate-chain fileb://ca.crt
   ```

   ```
   $ aws acm import-certificate --certificate fileb://client1.domain.tld.crt --private-key fileb://client1.domain.tld.key --certificate-chain fileb://ca.crt
   ```

   您不必将客户端证书上传到 ACM。如果服务器证书和客户端证书是由相同证书颁发机构 (CA) 颁发，则您可以在创建客户端 VPN 端点时在服务器和客户端中使用服务器证书 ARN。在上述步骤中，使用了相同 CA 来创建两个证书。但是，为了完整起见，其中包括上传客户端证书的步骤。

------
#### [ Windows ]

以下过程安装 Easy-RSA 3.x 软件，并使用它生成服务器和客户端证书和密钥。

**生成服务器和客户端证书和密钥并将它们上载到 ACM**

1. 打开 [EasyRSA 版本](https://github.com/OpenVPN/easy-rsa/releases)页面，然后下载适用于您的 Windows 版本的 ZIP 文件并对它进行解压缩。

1. 打开命令提示符，然后导航到 `EasyRSA-3.x` 文件夹解压缩到的位置。

1. 运行以下命令以打开 EasyRSA 3 shell。

   ```
   C:\Program Files\EasyRSA-3.x> .\EasyRSA-Start.bat
   ```

1. 初始化一个新的 PKI 环境。

   ```
   # ./easyrsa init-pki
   ```

1. 要构建新的证书颁发机构（CA），请运行此命令并按照提示进行操作。

   ```
   # ./easyrsa build-ca nopass
   ```

1. 生成服务器证书和密钥。

   ```
   # ./easyrsa --san=DNS:server build-server-full server nopass
   ```

1. 生成客户端证书和密钥。

   ```
   # ./easyrsa build-client-full client1.domain.tld nopass
   ```

   您可以选择为需要客户端证书和密钥的每个客户端（最终用户）重复此步骤。

1. 退出 EasyRSA 3 shell。

   ```
   # exit
   ```

1. 将服务器证书和密钥和客户端证书和密钥复制到自定义文件夹，然后导航到此自定义文件夹。

   复制证书和密钥之前，请使用 `mkdir` 命令创建自定义文件夹。以下示例在您的 C:\$1 驱动器中创建自定义文件夹。

   ```
   C:\Program Files\EasyRSA-3.x> mkdir C:\custom_folder
   C:\Program Files\EasyRSA-3.x> copy pki\ca.crt C:\custom_folder
   C:\Program Files\EasyRSA-3.x> copy pki\issued\server.crt C:\custom_folder
   C:\Program Files\EasyRSA-3.x> copy pki\private\server.key C:\custom_folder
   C:\Program Files\EasyRSA-3.x> copy pki\issued\client1.domain.tld.crt C:\custom_folder
   C:\Program Files\EasyRSA-3.x> copy pki\private\client1.domain.tld.key C:\custom_folder
   C:\Program Files\EasyRSA-3.x> cd C:\custom_folder
   ```

1. 将服务器证书和密钥以及客户端证书和密钥上传到 ACM。请确保在您打算在其中创建客户端 VPN 终端节点的同一区域中上传证书。以下命令 AWS CLI 使用上传证书。要改为使用 ACM 控制台上传证书，请参阅 *AWS Certificate Manager 用户指南*中的[导入证书](https://docs.aws.amazon.com/acm/latest/userguide/import-certificate-api-cli.html)。

   ```
   aws acm import-certificate \
       --certificate fileb://server.crt \ 
       --private-key fileb://server.key \
       --certificate-chain fileb://ca.crt
   ```

   ```
   aws acm import-certificate \
       --certificate fileb://client1.domain.tld.crt \
       --private-key fileb://client1.domain.tld.key \
       --certificate-chain fileb://ca.crt
   ```

   您不必将客户端证书上传到 ACM。如果服务器证书和客户端证书是由相同证书颁发机构 (CA) 颁发，则您可以在创建客户端 VPN 端点时在服务器和客户端中使用服务器证书 ARN。在上述步骤中，使用了相同 CA 来创建两个证书。但是，为了完整起见，其中包括上传客户端证书的步骤。

------