如何在 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.key 和 ca.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.    在证书列表中,确认您的服务器和客户端证书的状态列中显示为已签发


双向身份验证(用于 AWS 客户端 VPN)

这篇文章对您有帮助吗?

我们可以改进什么?


需要更多帮助?