Windows上创建OpenVPN需要的证书,以及搭建openVPN客户端

1、安装OpenVPN工具

下载最新版本的OpenVPN服务端,可以从这个地址下载:
https://openvpn.net/community-downloads/
下载的文件名为:OpenVPN-2.6.0-I005-amd64.msi ,双击安装,选择“Customize”

默认情况下不会安装的两个特性,我们需要在安装过程中进行选择。
OpenVPN Service
OpenVPN Utilities,这个特性要选中,后面制作证书需要这个工具包。


点击install now,安装完成后,点击close。

2、设置CA证书、生成服务端和客户端的证书和私钥等

找到目录“C:\Program Files\OpenVPN\easy-rsa”,将文件vars.example复制一份改名为vars,“vars”文件包含内置的Easy-RSA配置设置。可以保持默认设置,也可以自定义更改。
现在打开cmd(管理员权限),切换到“C:\Program Files\OpenVPN\easy-rsa”目录下,这里一定是用管理员权限打开,否则后期制作证书会有问题。
cd C:\Program Files\OpenVPN\easy-rsa
EasyRSA-Start.bat。输入EasyRSA-Start.bat回车后,我们会进入到easy-rsa3shell会话

执行init-pki来创建pki目录
./easyrsa init-pki

现在,使用下面的命令构建证书颁发机构(CA)密钥。这个CA根证书文件稍后将用于签署其他证书和密钥。我们使用的“nopass”选项用于禁用密码。
./easyrsa build-ca nopass

命令将被要求输入通用名称。这里我输入的VPN服务器主机名是combway,这是一种常见的做法。在这里,我们可以自由使用任何名称或值。同时创建的CA证书将被保存到文件夹“C:\Program Files\OpenVPN\easy-rsa\pki”,文件名为“ca .crt”。请参考下面的截图。

现在使用下面的命令构建一个服务器证书和密钥。这里将< SERVER >替换为您自己的服务器名。我还使用Option nopass来禁用密码。

./easyrsa build-server-full <SERVER> nopass

颁发的服务器证书将在“C:\Program Files\OpenVPN\easy-rsa\pki\issued”文件夹中,文件名为SERVER .crt。

这里可以使用以下命令进行验证,返回ok就没问题
openssl verify -CAfile pki/ca.crt pki/issued/SERVER.crt

现在,使用下面的命令构建客户端证书和密钥。将< CLIENT >替换为您的客户端名称。也使用选项nopass来禁用密码。
./easyrsa build-client-full nopass

到这里就完成了CA证书,服务器和客户端证书的生成和密钥。这些密钥将用于OpenVPN服务器和客户端之间的身份验证。
现在生成一个用于标准RSA证书/密钥之外的共享密钥。文件名为tls-auth.key。

首先使用GitHub链接https://github.com/TinCanTech/easy-tls 下载Easy-TLS。它是一个Easy-RSA扩展工具,我们正在使用它来生成tls-auth密钥。单击code选项卡下的Download zip选项。请参考下面的截图。

然后解压“easy-tls-master”文件夹,将“easytls”和“easytls-openssl.cnf”文件拷贝到“C:\Program files \OpenVPN\easy-rsa”目录下。查看下面的截图作为参考。这里要注意一下,在最新的版本中,没有了这两个文件,如果有需要的话,可以查看它的前期的版本进行下载使用。

现在回到EasyRSA shell提示符并输入下面的命令。初始化easy-tls脚本程序。
./easytls init-tls
现在,使用下面的命令生成tls-auth密钥。
./easytls build-tls-auth
该命令将生成名为“tls-auth”的密钥文件。在“C:\Program Files\OpenVPN\easy-rsa\pki\easytls”文件夹下。请参考下面的截图。

现在我们需要生成Diffie Hellman参数
./easyrsa gen-dh
该命令将在“C:\Program Files\OpenVPN\easy-rsa\pki”文件夹下创建dh文件,文件名为“dh .pem”。请参考下面的截图。

这就完成了OpenVPN服务所需的SSL/TLS密钥文件的生成。我们将能够在下面的文件夹中找到创建的文件。

3、以AX1800M为例进行说明

3.1 根据步骤2制作证书

new_ca.crt:根证书
new_dh.pemDH文件
combway.crt, combway.key: 服务端证书
witek.crt, witek.key: 客户端证书
new_tls-auth.keytls-auth秘钥

创建一个全新的Server

命名一个服务多客户端的服务器new_server,点击新增.

1、点击编辑按钮,进入到基础设置模式中

2、然后,依次点击ca、cert、dh、 key, 上传对应的证书new_ca.crt, combway.crt, new_dh.pem、combway.key,并选择对应的配置文件名称, 完成后,点击保存并应用
3、完成后,单独点击key, 上传new_tls-auth.key文件, 点击保存并应用。这一点要注意。
4、完成后的配置如下:

5、新增proto属性,点击左下角的下拉菜单,选中proto,并点击添加,在出现如图中右侧标注的内容中选择tcp-server, 完成后,点击保存并应用。

6、接下来添加 tls-auth属性, 点击当前菜单中的左上角的高级配置按钮

7、进入到高级配置选项中,如下图所示:点击Cryptography按钮,进入如下页面

8、左下角的下拉框中,选择tls-auth属性,并点击添加按钮,输入/etc/openvpn/new_tls-auth.key 0, 点击保存并应用

9、增加push属性,将服务端的子网推送到客户端,允许客户端访问服务器的内网
10、点击“VPN”菜单,从左下角的下拉框中选择push,并添加。输入route 192.168.10.0 255.255.255.0, 注意,这三个字段中用空格分开,并点击保存并应用

创建一个全新的client

1、制作配置文件
2、创建一个文本文件,点击打开,创建如下入所示的内容:
client
dev-type tun: 定义接口内心
dev tunx : 定义接口名称
proto tcp : 定义协议。如果服务端是udp,这里也为udp
cipher BF-CBC: 加密协议,默认值,可以根据需要进行修改
comp-lzo: 定义压缩方式
remote 192.168.100.130 1194: 定义服务器的公网IP 和 端口
key-direction 1
script-security 2
: 从这里开始填充tls-auth的内容

:从这里开始填充客户端证书crt的内容

: 从这里开始填充客户端证书key的内容

: 从这里填充根证书的内容

3、完成文本制作后,修改文件的后缀名为ovpn。例如改为test.ovpn。至此,整个客户端的配置文件制作完成

选择对应的OpenVPN客户端工具,进行拨号认证即可。

文档更新时间: 2023-02-21 10:53   作者:laowang