准备
EasyRSA
下载 EasyRSA (本文以 EasyRSA-3.1.7.tgz 为例)
签署证书
本文演示 CA、服务器端、客户端均在同一设备下生成,若在不同设备下请参考官方文档 。
解压 EasyRSA
Windows
- 使用压缩软件解压下载好的 EasyRSA 压缩包
- 进入 EasyRSA 文件目录,运行 EasyRSA-Start.bat
Linux
|  |  | 
配置 vars
- 在 EasyRSA 目录下有名为 vars.example的文件,复制该文件名并命名为vars(即去掉后缀 .example)
- 打开文件,在文件末尾添加如下内容并保存(变量值自行修改):
|  |  | 
创建 CA(证书颁发机构)
在 EasyRSA 目录下执行如下命令:
|  |  | 
说明:
- init-pki会生成一个- pki文件夹
- build-ca命令会自动使用目录下的- vars文件
- build-ca命令需要输入- CA Key Passphrase(请保存好,后续会使用)
- build-ca命令需要输入- Common Name(默认- Easy-RSA CA),直接回车即可。
- 最终会在 pki目录下生成ca.crt
签署服务端证书
生成 keypair/request
|  |  | 
说明:
- ovpn-server可以改成任意名称,仅用于命名请求文件。
- 此命令会需要输入 PEM pass phrase(请保存好)。如果不需要加密密钥,请在上述命令追加nopass
- 同样需要输入 Common Name(默认ovpn-server),直接回车即可
- 最终会生成两个文件 pki/reqs/ovpn-server.req和pki/private/ovpn-server.key
签署证书
|  |  | 
说明:
- 如果你在 生成 keypair/request 时不是使用的 ovpn-server,请替换为你所输入的内容
- 会提示你确认信息,输入 yes
- 需要输入 ca.key即创建 CA 时所输入的CA Key Passphrase
- 最终会生成 pki/issued/ovpn-server.crt
签署客户端证书
生成 keypair/request
|  |  | 
说明:
- ovpn-client可以改成任意名称,仅用于命名请求文件。
- 此命令会需要输入 PEM pass phrase(请保存好)。如果不需要加密密钥,请在上述命令追加nopass
- 同样需要输入 Common Name(默认ovpn-client),直接回车即可
- 最终会生成两个文件 pki/reqs/ovpn-client.req和pki/private/ovpn-client.key
签署证书
|  |  | 
说明:
- 如果你在 生成 keypair/request 时不是使用的 ovpn-client,请替换为你所输入的内容
- 会提示你确认信息,输入 yes
- 需要输入 ca.key即创建 CA 时所输入的CA Key Passphrase
- 最终会生成 pki/issued/ovpn-client.crt
生成密钥交换文件
|  |  | 
说明:
- 最终会生成 pki/dh.pem
总结
Conclusion
最终我们可以获得以下相关文件:
- ca.crt
- ovpn-server.key
- ovpn-server.crt
- ovpn-client.key
- ovpn-client.crt
- db.pem