В роутерах серии GTX есть возможность использования защищенного соединения через частные виртуальные сети (VPN).

Разновидностей различных видов VPN-соединений довольно большое количество, но в данной статье будет рассматриваться  автоматической генерации сертификатов для VPN-соединения протокола OpenVPN.


Ознакомиться с тем, что же такое OpenVPN и для чего он необходим, можно в статье OpenVPN.


Данный материал является примером реализации автоматической генерации сертификатов для протокола OpenVPN в единичных вариантах исполнения и не является полноценным руководством.

В данной статье будет рассматриваться базовая генерация сертификатов без подробных нюансов работы с программой Winbox и настройкой другого функционала операционной системы RouterOS.

Ознакомиться с детальными настройками роутера на операционной системе RouterOS Вы можете на официальном ресурсе - по ссылке: https://wiki.mikrotik.com/wiki/Manual:Create_Certificates




Генерация сертификатов


Перейдем в System - Certificate и создадим новый корневой сертификат нашего центра сертификации (CA).



1.1 Корневой сертификат


Обязательные поля - Name, Common Name, Key Size, Days Valid, остальные (такие, как Country, State и т.д.) - не являются обязательными для заполнения, они необходимы для определения принадлежности (владельца) сертификатов, то есть при большом количестве сертификатов, по данной информации можно его идентифицировать.


Обязательные:

- Name - имя сертификата в списке;

- Common name - Уникальное имя сертификата;

- Key Size - длина ключа, выбирается из списка;

- Days Valid - "срок годности" сертификата в днях;



На Вкладке Key Usage нужно указать crl sign и key cert. sign и нажать кнопку Apply, далее подписать сертификат нажав Sign

В появившемся окне заполнить поля: Certificate, выбрав сертификат СА, "CA CRL Host", указав локальный адрес - 127.0.0.1, после чего нажать Start и дождаться окончания подписи.


Сertificate - Сертификат из списка;

CA CRL Host - Список отзыва;

CA - Корневой сертификат;


1.2 Консольный аналог


/certificate 

add name=ca country="RU" state="Moscow" locality="Moscow" organization="Organization" unit="IT" common-name="ca" key-size=2048 days-valid=3650 key-usage=crl-sign,key-cert-sign 

sign ca ca-crl-host=127.0.0.1


2.1 Сертификат для сервера


Вкладка General сертификата для сервера заполняется аналогично, КРОМЕ полей Name и Common Name, где указывается уже имя для сервера. 

На вкладке Key Usage необходимо указать digital-signature, key-encipherment и tls-server


Далее необходимо подписать сертификат ключом CA, нажав Sign.

Для этого в поле CA необходимо выбрать созданный ранее корневой сертификат СА, после чего нажать Start и дождаться окончания подписи.




2.2 Консольный аналог


/certificate 

add name=Server country="RU" state="Moscow" locality="Moscow" organization="Organization" unit="IT" common-name="Server" key-size=2048 days-valid=3650 key-usage=digital-signature,key-encipherment,tls-server 

sign Server ca="ca"



3.1 Сертификат для клиента


Как и для сервера, для клиентского сертификата вкладка General сертификата заполняется аналогично, КРОМЕ полей Name и Common Name, где в данном случае указывается имя клиента.

Дополнительно необходимо обратить внимание на срок, на который выдается сертификат (для клиентов его можно сделать меньше в зависимости от нужд).


На вкладке Key Usage выбирается только пункт tls-client 

Далее, аналогичным образом нужно подписать сертификат ключом созданного ранее CA.



3.2 Консольный аналог


/certificate 

add name=Client1 country="RU" state="Moscow" locality="Moscow" organization="Organization" unit="IT" common-name="Client1" key-size=2048 days-valid=365 key-usage=tls-client 

sign Client1 ca="ca"


Результат пунктов 1-3


Если все было проделано верно, то Вы можно увидеть флаги: на СА - KLAT, на остальных - KI:



4.1 Экспорт сертификатов


Для использования созданного ранее сертификата клиентом, необходимо экспортировать закрытый ключ, сертификат клиента, корневой сертификат СА. Очень удобно использовать для данных целей формат PKCS12, поскольку он содержит все необходимые компоненты в одном файле (сертификат, ключ и CA). Для этого необходимо щелкнуть на нужном сертификате правой кнопкой и выберите Export, в открывшемся окне укажите формат Type - PKCS12 и парольную фразу для экспорта (минимум 8 символов) в Export Passphrase


Если не будет указан пароль, то закрытые ключи выгружены не будут, при этом нельзя использовать выгруженный сертификат для настройки клиента, поскольку он не будет содержать всю необходимую информацию!


4.2 Консольный аналог 


/certificate

export-certificate Client1 type=pkcs12 export-passphrase=teleofis


5 Импорт сертификатов


В данном случае кодовой фразой указан: "teleofis". Экспортированные сертификаты можно скачать в разделе Files.



Далее, для установки сертификатов, необходимо загрузить созданный ранее файл в роутер, который будет являться клиентом (также в Files), после этого, в уже знакомой вкладке Certificates нажать Import, указать файл и кодовую фразу. 



На этом создание сертификатов средствами маршрутизатора для OVPN закончено, можно переходить к настройке.


Переходим к следующей статье:

OpenVPN в роутере GTX: Часть 1 - режим "OpenVPN Сервер"


Сопутствующие статьи:

Как подключиться к роутеру GTX?

Как подавать команды в терминал(консоль) роутера?


Дополнительная информация:

Роутеры TELEOFIS GTX300/400. Краткое руководство по эксплуатации

Модели роутеров на сайте TELEOFIS