Я был отправлен некоторые файлы для соединения с сервером OpenVPN на работе. Я сделал это прежде, но у меня был .ovpn файл, и это было очень легко. Теперь это сбивает с толку с файлами (ca.crt1
, ta.key
, clientHome.crt
, clientHome.key
).
Существует ли способ преобразовать все эти файлы в единственный .ovpn файл?
Я предлагаю, чтобы Вы следовали, Цифровое Океанское учебное руководство нашло здесь . Запустите на Шаге 4 - Создание Объединенного Профиля OpenVPN для Клиентских устройств.
сводка А процесса -
Я создал следующий сценарий ( ссылка на Суть GitHub сценария ), который работает на мою конфигурацию:
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 файл на текущем рабочем каталоге