我收到了一些文件,要求我连接到工作中的 OpenVPN 服务器。我以前也这样做过,但我有一个 .ovpn 文件,这很容易。现在文件 ( ca.crt1
、ta.key
、clientHome.crt
、clientHome.key
) 让我很困惑。
有没有办法将所有这些文件转换为单个 .ovpn 文件?
答案1
我建议你按照 Digital Ocean 教程进行操作这里. 从步骤 4 开始 - 为客户端设备创建统一的 OpenVPN 配置文件。
该过程的摘要-
- 编辑 .ovpn 文件以包含你的服务器地址
- 将 ca.crt、client1.crt 和 client1.key 文件的内容直接粘贴到 .ovpn 配置文件中
- 按照列表进行一些其他小修改
答案2
我创建了以下脚本(脚本的 GitHub Gist 链接)适用于我的配置:
import sys, os
ALLOW_FILE_OPTIONS = ["ca", "cert", "dh", "extra-certs", "key", "pkcs12", "secret", "crl-verify", "http-proxy-user-pass", "tls-auth", "tls-crypt"]
filepath = sys.argv[1]
output_file = os.path.basename(filepath). replace(".conf", ".ovpn")
inline_tuples_to_add = []
with open(output_file, 'w') as dst:
with open(filepath) as src:
for l in src:
option = l.split()
if len(option) >= 2 and option[0] in ALLOW_FILE_OPTIONS and os.path.isfile(option[1]):
inline_tuples_to_add.append((option[0], option[1]))
continue
dst.write(l)
dst.write("key-direction 1\n\n") # needed fot tls-auth
for t in inline_tuples_to_add :
tag_begining = "<{}>\n".format(t[0])
dst.write(tag_begining)
with open(t[1]) as tag_cpntent_file:
dst.writelines(tag_cpntent_file.readlines())
tag_ending = "</{}>\n\n".format(t[0])
dst.write(tag_ending)
运行示例:
python convert_openvpn_conf_file_to_ovpn_file.py /etc/openvpn/client.conf
这将在当前工作目录中创建一个 .ovpn 文件