0

Mikrotik: работа с сертификатами

07.02.2024

Документация от производителя: https://wiki.mikrotik.com/wiki/Manual:System/Certificates

Что требуется:

  • Mikrotik
  • Желательно но не обязательно: белый IP
  • Желательно но не обязательно: FQDN (полное доменное имя, в примере это vpn.mydomain.ru)

Создание сертификатов

Создание корневого сертификата (CA – Certification Authority)

Корневой сертификат нужен для подписывания других выдаваемых сертификатов, необходим если вы сами выпускаете сертификаты

  • Открываем System / Certificates
  • Создаем новый, заполняем поля:
    • Вкладка General
      • Name: Любое понятное имя, например CA.mydomain.ru
      • Country: RU
      • State: 24 (можно писать что угодно, я предпочитаю Край/Регион/Область или их цифровые коды)
      • Locality: YourCity (город)
      • Organization: MyCompany (наименование компании)
      • Unit: IT (подразделение)
      • Common Name: Необходимо указать белый IP или полное доменное имя
      • Subject Alt.Name: Желательно указать DNS-имя и/или белый IP. Можно указывать сразу несколько опций
      • Key Size: 2048 (или 4096 если вы параноик)
      • Days Valid: 3650 (10 лет или дефолтные 365 на 1 год)
      • Вкладка Key Usage
      • Key Usage: должны быть включены только «crl sign» и «key cert. sign» 
  • Проверяем все ли заполнено верно
  • Нажимаем Apply – сертификат создан
  • Нажимаем Sign чтобы подписать сертификат
    • Certificate: Выбираем свой сертификат (если он выбран)
    • CA: ничего не указываем (т.к. у нас его еще нет)
    • CA CRL Host: (Желательно, но не обязательно) Указываем белый IP или FQDN имя роутера для списка отозванных сертификатов)
    • Нажимаем Start
    • Ждем окончания процесса подписания, закрываем все окна
  • В результате этих действий должен появиться сертификат с нашим именем и он должен иметь флаги KLAT

Создание сертификата сервера

Для создания сертификата сервера должне быть создан CA-сертификат как это описано выше

  • Открываем System / Certificates
  • Создаем новый, заполняем поля:
    • Вкладка General
      • Name: Любое понятное имя, например vpn.mydomain.ru
      • Country: RU
      • State: 24 (можно писать что угодно, я предпочитаю Край/Регион/Область или их цифровые коды)
      • Locality: YourCity (город)
      • Organization: MyCompany (наименование компании)
      • Unit: IT (подразделение)
      • Common Name: Необходимо указать белый IP или полное доменное имя
      • Subject Alt.Name: Желательно указать DNS-имя и/или белый IP. Можно указывать сразу несколько опций
      • Key Size: 2048 (или 4096 если вы параноик)
      • Days Valid: 3650 (10 лет или дефолтные 365 на 1 год)
    • Вкладка Key Usage
      • Key Usage: должны быть включены только «digital signature», «key enciphement», «tls server»
  • Проверяем все ли заполнено верно
  • Нажимаем Apply – сертификат создан
  • Нажимаем Sign чтобы подписать сертификат
    • Certificate: Выбираем свой сертификат (если он выбран)
    • CA: выбираем сертификат CA
    • CA CRL Host: пропускаем
    • Нажимаем Start
    • Ждем окончания процесса подписания
  • Проверяем галку «Trust», закрываем все окна
  • В результате этих действий должен появиться сертификат с нашим именем и он должен иметь флаги KIT

Создание сертификата клиента

Для создания сертификата сервера должне быть создан CA-сертификат как это описано выше

  • Открываем System / Certificates
  • Создаем новый, заполняем поля:
    • Вкладка General
      • Name: Любое понятное имя, например Client1
      • Country: RU
      • State: 24 (можно писать что угодно, я предпочитаю Край/Регион/Область или их цифровые коды)
      • Locality: YourCity (город)
      • Organization: MyCompany (наименование компании)
      • Unit: IT (подразделение)
      • Common Name: Необходимо указать имя клиента (как вариант – белый IP или полное доменное имя)
      • Subject Alt.Name: Оставляем пустым
      • Key Size: 2048 (или 4096 если вы параноик)
      • Days Valid: 3650 (10 лет или дефолтные 365 на 1 год) – в зависимости от вашего доверия к клиенту
    • Вкладка Key Usage
      • Key Usage: должны быть включены только «tls client» 
  • Проверяем все ли заполнено верно
  • Нажимаем Apply – сертификат создан
  • Нажимаем Sign чтобы подписать сертификат
    • Certificate: Выбираем свой сертификат (если он выбран)
    • CA: выбираем сертификат CA
    • CA CRL Host: пропускаем
    • Нажимаем Start
    • Ждем окончания процесса подписания
  • В результате этих действий должен появиться сертификат с нашим именем и он должен иметь флаги KI

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

Экспорт с помощью GIU:

  • Открываем нужный сертификат
  • Нажимаем Export
  • Выбираем формат PEM (по умолчанию) или PKCS12 (если сертификат создавался на этом же роутере то он выгрузится вместе с корневым сертификатом CA)
  • В меню Files появляется экспортированный сертификат с расширением .crt

Экспорт c помощью командной строки:

/certificate
export-certificate CA
export-certificate Client1

Если требуется выгрузить приватный ключ (файл .key), это можно сделать командой:

/certificate
export-certificate Client1 export-passphrase=secret-pa$$word

Где secret-pa$$word – пароль.

Если нужно удалить пароль, можно перенести сертификат на компьютер и выполнить:

openssl rsa -in Client1.key -out Client2.key

В новом файле Client2.key пароль будет удален

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

  • Загружаем сертификаты в Files
  • Открываем System / Certificates
  • Нажимаем Import
  • Выбираем сертификат, при необходимости указываем Passphrase (пароль)

Свежие комментарии

Подписка

Лучшие статьи


Fatal error: Uncaught Error: Call to a member function have_posts() on null in /home/host1867038/the-devops.ru/htdocs/www/wp-content/themes/fox/inc/blog.php:391 Stack trace: #0 /home/host1867038/the-devops.ru/htdocs/www/wp-content/themes/fox/widgets/latest-posts/widget.php(257): fox56_blog_grid(NULL, Array) #1 /home/host1867038/the-devops.ru/htdocs/www/wp-content/themes/fox/widgets/latest-posts/register.php(33): include('/home/host18670...') #2 /home/host1867038/the-devops.ru/htdocs/www/wp-includes/class-wp-widget.php(394): Wi_Widget_Latest_Posts->widget(Array, Array) #3 /home/host1867038/the-devops.ru/htdocs/www/wp-includes/widgets.php(837): WP_Widget->display_callback(Array, Array) #4 /home/host1867038/the-devops.ru/htdocs/www/wp-content/themes/fox/inc/single.php(417): dynamic_sidebar('sidebar') #5 /home/host1867038/the-devops.ru/htdocs/www/wp-content/themes/fox/inc/single.php(136): fox56_single_sidebar() #6 /home/host1867038/the-devops.ru/htdocs/www/wp-content/themes/fox/inc/single.php(7): fox56_single_inner() #7 /home/host1867038/the-devops.ru/htdocs/www/wp-content/themes/fox/single.php(23): fox56_single() #8 /home/host1867038/the-devops.ru/htdocs/www/wp-includes/template-loader.php(106): include('/home/host18670...') #9 /home/host1867038/the-devops.ru/htdocs/www/wp-blog-header.php(19): require_once('/home/host18670...') #10 /home/host1867038/the-devops.ru/htdocs/www/index.php(17): require('/home/host18670...') #11 {main} thrown in /home/host1867038/the-devops.ru/htdocs/www/wp-content/themes/fox/inc/blog.php on line 391