如何在 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_COUNTRY、KEY_PROVINCE、KEY_CITY、KEY_ORG 和 KEY_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.crt、server.key、client1.crt、client1.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.在证书列表中,确认您的服务器和客户端证书的状态列中显示为已签发。