本文最后更新于 236 天前 ,文中信息可能已经过时。如有问题请在评论区留言。

准备

EasyRSA

下载 EasyRSA (本文以 EasyRSA-3.1.7.tgz 为例)

签署证书

本文演示 CA、服务器端、客户端均在同一设备下生成,若在不同设备下请参考官方文档

解压 EasyRSA

Windows

  1. 使用压缩软件解压下载好的 EasyRSA 压缩包
  2. 进入 EasyRSA 文件目录,运行 EasyRSA-Start.bat

Linux

bash
1
2
tar -zxf EasyRSA-3.1.7.tgz
cd EasyRSA-3.1.7/

配置 vars

  1. 在 EasyRSA 目录下有名为 vars.example 的文件,复制该文件名并命名为 vars(即去掉后缀 .example)
  2. 打开文件,在文件末尾添加如下内容并保存(变量值自行修改):
text
1
2
3
4
5
6
set_var EASYRSA_REQ_COUNTRY	"US"
set_var EASYRSA_REQ_PROVINCE	"California"
set_var EASYRSA_REQ_CITY	"San Francisco"
set_var EASYRSA_REQ_ORG	"Copyleft Certificate Co"
set_var EASYRSA_REQ_EMAIL	"me@example.net"
set_var EASYRSA_REQ_OU		"My Organizational Unit"

创建 CA(证书颁发机构)

在 EasyRSA 目录下执行如下命令:

powershell
1
2
./easyrsa init-pki
./easyrsa build-ca

说明:

  1. init-pki 会生成一个 pki 文件夹
  2. build-ca 命令会自动使用目录下的 vars 文件
  3. build-ca 命令需要输入 CA Key Passphrase(请保存好,后续会使用)
  4. build-ca 命令需要输入 Common Name(默认 Easy-RSA CA),直接回车即可。
  5. 最终会在 pki 目录下生成 ca.crt

签署服务端证书

生成 keypair/request

powershell
1
./easyrsa gen-req ovpn-server

说明:

  1. ovpn-server 可以改成任意名称,仅用于命名请求文件。
  2. 此命令会需要输入 PEM pass phrase(请保存好)。如果不需要加密密钥,请在上述命令追加 nopass
  3. 同样需要输入 Common Name(默认 ovpn-server),直接回车即可
  4. 最终会生成两个文件 pki/reqs/ovpn-server.reqpki/private/ovpn-server.key

签署证书

powershell
1
./easyrsa sign-req server ovpn-server

说明:

  1. 如果你在 生成 keypair/request 时不是使用的 ovpn-server,请替换为你所输入的内容
  2. 会提示你确认信息,输入 yes
  3. 需要输入 ca.key 即创建 CA 时所输入的 CA Key Passphrase
  4. 最终会生成 pki/issued/ovpn-server.crt

签署客户端证书

生成 keypair/request

powershell
1
./easyrsa gen-req ovpn-client

说明:

  1. ovpn-client 可以改成任意名称,仅用于命名请求文件。
  2. 此命令会需要输入 PEM pass phrase(请保存好)。如果不需要加密密钥,请在上述命令追加 nopass
  3. 同样需要输入 Common Name(默认 ovpn-client),直接回车即可
  4. 最终会生成两个文件 pki/reqs/ovpn-client.reqpki/private/ovpn-client.key

签署证书

powershell
1
./easyrsa sign-req client ovpn-client

说明:

  1. 如果你在 生成 keypair/request 时不是使用的 ovpn-client,请替换为你所输入的内容
  2. 会提示你确认信息,输入 yes
  3. 需要输入 ca.key 即创建 CA 时所输入的 CA Key Passphrase
  4. 最终会生成 pki/issued/ovpn-client.crt

生成密钥交换文件

powershell
1
./easyrsa gen-dh

说明:

  1. 最终会生成 pki/dh.pem

总结

Conclusion

最终我们可以获得以下相关文件:

  • ca.crt
  • ovpn-server.key
  • ovpn-server.crt
  • ovpn-client.key
  • ovpn-client.crt
  • db.pem

参考