生成一个OpenVPNconfiguration文件供客户端用户导入

是否有任何文档或资源描述如何生成和托pipeOpenVPN客户端的configuration文件导入? 理想情况下,我的用户不必分别获取.ovpn + certs的.zip文件,将其解压到适当的目录,调整.ovpn等。

显然,自从OpenVPN 2.1以来,一直支持内联configuration。 允许您查找您的证书,并将所有密钥全部保存在一个configuration文件中。 但是关于如何创build这个configuration文件的文档直到最近的2.3版才被添加。

https://community.openvpn.net/openvpn/wiki/Openvpn23ManPage

client proto udp remote openvpnserver.example.com port 1194 dev tun nobind key-direction 1 <ca> -----BEGIN CERTIFICATE----- # insert base64 blob from ca.crt -----END CERTIFICATE----- </ca> <cert> -----BEGIN CERTIFICATE----- # insert base64 blob from client1.crt -----END CERTIFICATE----- </cert> <key> -----BEGIN PRIVATE KEY----- # insert base64 blob from client1.key -----END PRIVATE KEY----- </key> <tls-auth> -----BEGIN OpenVPN Static key V1----- # insert ta.key -----END OpenVPN Static key V1----- </tls-auth> 

从OpenVPN 2.3手册页(这是支持从2.1rc – 东西):

OpenVPN允许在主要configuration文件中包含--ca, --cert, --dh, --extra-certs, --key, --pkcs12, --secret--tls-auth选项。

每个内联文件由行开始,以行结束

这是一个内联文件使用的例子

 <cert> -----BEGIN CERTIFICATE----- [...] -----END CERTIFICATE----- </cert> 

当使用内联文件function--pkcs12 ,内联文件必须是base64编码的。 将.p12文件编码到base64中可以通过运行openssl base64 -in input.p12

另请注意key-direction选项:

指定--tls-auth--secret选项的可选方向参数的替代方法。 使用内联文件时很有用(请参阅内联文件部分)。

这个Python脚本可以在服务器上运行以生成客户端密钥和configuration文件。 我想内联,但它不是我的创作,而且很长,可能会定期更新,并有分叉的机会,因此它可以在networking上search未来的networking游客。 如果链接不起作用,请尝试search“openvpn_gen.py”。

https://gist.github.com/Justasic/908ef5f4fa162f15b3b8