OpenVPN关于证书签名等的制作方法

服务器 ayflying 8036℃ 评论

OpenVPN是一个优秀的vpn工具,VPN可不仅仅是翻墙这么点功能,可以让异地的的多个多台终端连接到同一个局域网,而且稳定性高,用户操作也更方便。

OpenVPN 是一个基于 OpenSSL 库的应用层 VPN 实现。和传统 VPN 相比,它的优点是简单易用。

要使用OpenVPN 首先是安装,这个就不在这里介绍了,直接进入配置环节。

配置OpenVPN 需要easy-rsa这个东西,没有的话表示安装的时候没有勾选。

首先控制台进入当前目录

e:
cd E:\Program Files\OpenVPN\easy-rsa

这个是我的目录,大家目录不同就按照自己的目录进行操作

初始化

现在开始来初始化环境操作:

init-config ::(初始化配置,将vars.bat.sample文件的内容复制到vars.bat。实际上,你也可以直接双击执行easy-rsa目录下的init-config.bat文件来代替这一步。)
vars ::(设置相应的局部环境变量,就是我们在vars.bat.sample文件中设置的内容)
clean-all ::(相关设置和清理工作)

注意:这个初始化环境只有第一次需要前部输入,如果后来再打开只需要输入vars就可以执行下面的操作了,除非你修改了配置文件。

创建CA根证书:

build-ca

在build-ca的时候需要输入一些注册信息。在输入信息的时候,如果你不输入任何信息,就表示采用默认值(前面[]中的内容就是默认值);如果你输入.,则表示当前信息项留空白。值得注意的是,上图中红色矩形框中的OpenVPN_CA是证书的通用名称(Common Name),相当于我们常说的账号,你也可以自行输入其他名称。

创建服务器端证书:

build-key-server server

如上图所示,命令中的参数server指的是生成的证书文件名称,你可以按照自己的需要进行修改,不过后面的Common Name也应保持一致。第二个红色矩形框中是输入的密码,你也可以根据意愿自行输入。最后程序会询问你是否注册并提交证书,两次均输入y即可。

创建迪菲·赫尔曼密钥:

build-dh

迪菲·赫尔曼密钥交换(Diffie–Hellman key exchange,简称「D–H」) 是一种安全协议。它可以让双方在完全没有对方任何预先信息的条件下通过不安全信道创建起一个密钥。这个密钥可以在后续的通讯中作为对称密钥来加密通讯内容。

创建客户端证书:

build-key client

命令中的参数client表示生成的证书文件名称,你可以按照自己的需要进行修改,不过后面的Common Name也应保持一致。第二个红色矩形框中是输入的密码,你也可以根据意愿自行输入。最后程序会询问你是否注册并提交证书,两次均输入y即可。

如果你想创建多个不同的客户端证书,只需要重复此步骤即可。切记,Common Name不要重复,这是OpenVPN用来区分不同客户端的关键所在。

(可选操作)生成ta.key:

openvpn --genkey --secret keys/ta.key

这一步其实是可选操作,生成的ta.key主要用于防御DoS、UDP淹没等恶意攻击。命令中的第3个参数keys/ta.key表示生成的文件路径(含文件名)。

创建完证书后,我们会发现easy-rsa目录下多了一个keys文件夹。现在我们将keys文件夹中对应的文件复制到OpenVPN服务器或客户端的安装目录的config文件夹下。


服务器端config目录需要的文件包括:

ca.crt
ca.key(核心CA证书和私钥)
dh1024.pem(如果最初的变量KEY_SIZE设为2048,这里就是dh2048.pem)
server.crt
server.key(名称server根据个人设置可能有所不同)
ta.key(名称也可自行设置,如果不需要防御攻击,可以不创建或复制此文件)

客户端config目录需要的文件包括:

ca.crt
client.crt
client.key(名称client根据个人设置可能有所不同)
ta.key(如果服务器端具备此文件,客户端也应具备)

非常重要的提醒:以上命令都是在同一个DOS窗口中执行的,如果你以后需要打开新窗口来执行命令(比如创建新的客户端证书):你不需要再执行init-config命令,除非你再次改动了vars.bat.sample文件;每一次打开新窗口时都需要先执行vars命令,后面才能执行其他命令。

这样OpenVPN的证书就制作完成了。

转载请注明:七彩悠悠博客 | 心悠悠 情悠悠 » OpenVPN关于证书签名等的制作方法

高效,专业,悠悠博客

联系我们