如何在 Windows 服务器上生成服务器和客户端证书及其各自的密钥并将其上传到 ACM?

上次更新时间:2020 年 4 月 10 日

如何在 Windows 服务器上生成服务器和客户端证书及其各自的密钥并将其上传到 AWS Certificate Manager (ACM)?

解决方法

生成服务器和客户端证书及其各自的密钥

1.转到OpenVPN 社区下载页面。

2.选择您正在运行的 Windows 操作系统版本的 Windows 安装程序 (.exe) 文件。然后,选择运行

3.完成 OpenVPN 设置向导:
选择下一步
查看许可协议,然后选择我同意
选择组件中,选择EasyRSA 2 证书管理脚本
选择下一步,然后选择安装

4.安装了 OpenVPN 软件后,打开命令提示符并导航到 easy-rsa文件夹:

cd \Program Files\OpenVPN\easy-rsa

5.启动 OpenVPN 配置:

init-config

6.在文本编辑器中打开 vars.bat 文件:

notepad vars.bat 

设置KEY_Size=2048。然后,设置KEY_COUNTRYKEY_PROVINCEKEY_CITYKEY_ORGKEY_EMAIL 的值。请勿将其中的任何参数留空。

保存并关闭文本编辑器。

7.运行以下命令为证书颁发机构 (CA) 证书设置上述变量,初始化公钥基础设施 (PKI),并构建 CA 证书:

vars
clean-all
build-ca

在提示符中,将所有字段保留为默认值。或者,您可以将通用名称更改为您的服务器的域名。

8.运行以下命令为服务器生成证书和私钥:

build-key-server server

在提示符中,使用格式server.example.com通用名称更改为您的服务器的域名。将所有其余字段保留为默认值。

9.运行以下命令为客户端生成证书和私钥:

build-key client1

在提示符中,使用格式client1.example.com通用名称更改为您的客户端的域名。将所有其余字段保留为默认值。

10.(可选)如果需要,创建其他客户端证书和密钥。

build-key client2

在提示符中,使用格式client2.example.com通用名称更改为您的客户端的域名。将所有其余字段保留为默认值。

重要提示:如果您不采用上面指定的格式来设置通用名称,则当您将该证书导入到 ACM 时域名不可用。因此,在创建 AWS 客户端 VPN 终端节点时,该证书不是指定服务器证书或客户端证书操作的可用选项。

将服务器和客户端证书和密钥导入到 ACM

注意:服务器和客户端证书及其各自的密钥,均可从C:\Program Files\OpenVPN\easy-rsa\keys 中获得。

1.打开以下文件:server.crtserver.keyclient1.crtclient1.keyca.crt

2.打开ACM 控制台,然后选择导入证书

3.在导入证书页面上,复制/粘贴以下内容:
server.crt文件到证书正文
server.key文件到证书私钥
ca.crt文件到证书链

4. 选择导入以导入服务器证书。

5. 再次选择导入证书,并复制/粘贴以下内容:
client1.crt文件到证书正文
client1.key 文件到证书私钥
ca.crt 文件证书链

6. 选择导入以导入客户端证书。

或者,您可以使用 AWS 命令行界面 (AWS CLI) 将服务器和客户端证书及其密钥导入到 ACM:

cd C:\Program Files\OpenVPN\easy-rsa\keys
aws acm import-certificate --certificate file://"C:\Program Files\OpenVPN\easy-rsa\keys\server.crt" --private-key file://"C:\Program Files\OpenVPN\easy-rsa\keys\server.key" --certificate-chain file://"C:\Program Files\OpenVPN\easy-rsa\keys\ca.crt"
aws acm import-certificate --certificate file://"C:\Program Files\OpenVPN\easy-rsa\keys\client1.crt" --private-key file://"C:\Program Files\OpenVPN\easy-rsa\keys\client1.key" --certificate-chain file://"C:\Program Files\OpenVPN\easy-rsa\keys\ca.crt"

确认您已成功创建并导入您的服务器和客户端证书

1.打开 ACM 控制台。

2.在证书列表中,确认您的服务器和客户端证书的状态列中显示为已签发