生成 OpenVPN 证书 & 密钥
为 S系列 IPPBX 和客户端制作证书和密钥。
重要: 以下所有命令均在同一个 CMD 窗口执行。
如果你想要在新的 CMD 窗口中执行命令(如新建客户端证书和密钥):
- 不需要再执行
init-config
命令。 - 每次在新的 CMD 窗口执行命令时,请先执行
vars
命令,再执行其它命令。
初始化 OpenVPN 配置
- 按 Windows + R 键,输入
cmd
后按 Enter 键。 - 进入目录 %ProgramFiles%\OpenVPN\easy-rsa (e.g. D:\OpenVPN\easy-rsa)。
cd D:\OpenVPN\easy-rsa
- 初始化配置。
init-config
- 使用文本编辑器打开 vars.bat
文件。
notepad vars.bat
- 修改
KEY_SIZE
参数。通常,私钥大小设置为 1024 或 2048。set KEY_SIZE=2048
- 自定义如下信息,直接替换 “US”,“CA”等。稍后,在制作CA,证书和密钥时,需要输入内嵌的证书信息。 如果预先更改下面的默认变量值,则不必每次都输入这些信息。
set KEY_COUNTRY=CN set KEY_PROVINCE=FJ set KEY_CITY=Xiamen set KEY_ORG=Yeastar set KEY_EMAIL=support@yeastar.com
- 保存 vars.bat 文件,返回 CMD 窗口。
- 修改
- 执行如下命令,确保所有操作都在初始环境下进行。
请注意,该操作会清空 keys 目录下的所有证书和密钥文件。
vars clean-all
生成 CA 根证书
- 执行以下命令,在 keys 目录下生成 ca.crt 和
ca.key 文件。
build-ca
- 当系统提示输入证书内嵌信息时,输入你的国家,地区等。
你也可以直接按 Enter 使用括号中预置的信息。
重要: Common Name 是必须输入的唯一参数 。 在下面的示例中,我们将 Common Name 设置为OpenVPN_CA
。Country Name (2 letter code) [CN]: State or Province Name (full name) [FJ]: Locality Name (eg, city) [Xiamen]: Organization Name (eg, company) [Yeastar]: Organizational Unit Name (eg, section) [changeme]:admin Common Name (eg, your name or your server's hostname) [changeme]:OpenVPN_CA Name [changeme]:Yeastar Email Address [support@yeastar.com]:
生成服务器证书&密钥
- 执行如下命令,在 keys 目录下生成
{server_name}.crt 和
{server_name}.key 文件。如下命令所示,生成 server.crt 和 server.key。
build-key-server server
- 当系统提示输入证书内嵌信息时,输入你的国家,地区等。
你也可以直接按 Enter 使用括号中预置的信息。
重要: Common Name 是必须输入的唯一参数 ,命名与 {server_name} 保持一致。 在下面的示例中,我们将 Common Name 设置为server
。Country Name (2 letter code) [CN]: State or Province Name (full name) [FJ]: Locality Name (eg, city) [Xiamen]: Organization Name (eg, company) [Yeastar]: Organizational Unit Name (eg, section) [changeme]:admin Common Name (eg, your name or your server's hostname) [changeme]:server Name [changeme]:Yeastar Email Address [support@yeastar.com]:
- 当系统提示签署证书并确认时,输入
y
, 按 Enter 键。Sign the certificate? [y/n]:y 1 out of 1 certificate requests certified, commit? [y/n]y
生成客户器证书&密钥
- 执行如下命令,在 keys 目录下生成
{client_name}.crt 和
{client_name}.key 文件。
如下命令所示,生成 client.crt 和 client.key。
build-key client
- 当系统提示输入证书内嵌信息时,输入你的国家,地区等。
你也可以直接按 Enter 使用括号中预置的信息。
重要: Common Name 是必须输入的唯一参数 ,命名与 {client_name} 保持一致。 在下面的示例中,我们将 Common Name 设置为client
。Country Name (2 letter code) [CN]: State or Province Name (full name) [FJ]: Locality Name (eg, city) [Xiamen]: Organization Name (eg, company) [Yeastar]: Organizational Unit Name (eg, section) [changeme]:admin Common Name (eg, your name or your server's hostname) [changeme]:client Name [changeme]:Yeastar Email Address [support@yeastar.com]:
- 当系统提示签署证书并确认时,输入
y
, 按 Enter 键。Sign the certificate? [y/n]:y 1 out of 1 certificate requests certified, commit? [y/n]y
- 重复步骤 1 到步骤 3 分别为每个客户端创建证书 & 密钥。
每个客户都按使用唯一名称作为标识,如 Windsows PC 的客户端命名为 windows.crt 和 windows.key
生成 ta.key
执行如下命令,在 keys 目录下生成 ta.key。
OpenVPN --genkey --secret keys/ta.key
生成 Diffie Hellman 参数
build-dh