Mikrotik: Импортирование подписанного сертификата

Мы получили настоящий, подписанный SSL-сертификат для управления нашим Микротиком через HTTPS.
Нам нужны три файла:
— сертификат, подписанным неким провайдером сертификатов — файл «my.crt»;
— приватный ключ — файл «my.key»;
— промежуточные сертификаты (корневой и этого провайдера) вместе в одном файле — файл «im.crt»;

Загружаем эти файлы на Микротик через меню Files.

По моему опыту лучше начать с импорта промежуточного сертификата, иначе может случиться, что система выдаст в логи сообщение о неправильной подписи сертификата. Впрочем, возможно, это не помешает и уладится после загрузки промежуточных сертификатов.
В разделе System — Certificates нажимаем кнопку Import и в выпадающем меню «Only File», выбираем файла «im.crt» и нажимаем кнопку «Import». В моём случае появилось два сертификата, т.к. у нас в файле их два. Вероятно, можно импортировать их и по-отдельности, но я не пробовал, просто взял тот файл, который я использовал для Апача.

Затем так же загружаем файл с подписанным сертификатом «my.crt». Он должен появиться в списке сертификатов и перед ним буквы L (crl) и T (trusted).

Теперь надо добавить наш приватный ключ — делаем это так же через Import, после чего возле уже появившегося после предыдущего шага сертификата появится буква K (private-key).

Теперь осталось указать веб-серверу Микротика использовать наш сертификат — в разделе IP — Services — www-ssl меню Certificate. Без этого HTTPS может не работать и выдавать ошибку «ERR_SSL_VERSION_OR_CIPHER_MISMATCH».

Убедитесь, что у вас есть другой вход, например, ssh или простой HTTP, т.к. ошибка с сертификатами может привести к тому, что вы не сможете зайти через HTTPS. Также можно подстраховаться и нажать кнопку «Safe Mode», главное потом, если всё нормально, не забыть отжать эту кнопку, иначе роутер перезагрузится и ваши изменения пропадут.
Включите, если она ещё не включена, службу www-ssl в разделе IP — Services и проверьте подключение через HTTPS. Если всё нормально, то можно отключить простой HTTP.

Дополнение про обновление сертификата

Обновить только подписанный сертификат у меня не получилось — импортировал новый и пропала связь по HTTPS. Далее пришлось всё делать через SSH, а файлы сертификатов загружать на Микротик через SFTP.

Проще удалить все сертификаты и добавить заново:
certificate remove 0
certificate remove 1
certificate remove 2
certificate import file-name=im.crt
certificate import file-name=my.crt
certificate import file-name=my.key


В результате в выводе команды «certificate pr detail» у меня получилось два промежуточных сертификата и один приватный, причём приватный должен иметь отметки «KL T» (K — private-key, L — crl, T — trusted). В этом же выводе смотрим имя сертификата 'name=«my.crt_0»'

Затем надо проверить привязан ли сертификат к службе www-ssl:
ip service print detail where name=www-ssl
 "номер_службы"   name="www-ssl" port=443 address="" certificate=*A


У меня не привязан, т.к. имя сертификата изменилось
Указываем новое имя:
ip service set "номер_службы" certificate=my.crt_0

Проверяем:
ip service pr detail where name=www-ssl
 0   name="www-ssl" port=443 address="" certificate=my.crt_0


Проверяем HTTPS — работает.

Копирование конфигурации Mikrotik-а на ФТП-сервер

Сначала экспортируем конфигурацию в файл на самом Mikrotik-е:
/export file=r1-config1701
Операция занимает несколько секунд.

Затем можно копировать его на ФТП-сервер:
/tool fetch address=10.0.1.3 user=ftp1 password=PWD123 mode=ftp src-path=r1-config1701.rsc dst-path="/tmp/r1-config1701.txt" upload=yes

rsc — расширение файла, которое Mikrotik добавляет сам, а я хочу, чтобы на ФТП-сервере получился файл с расширением txt.

Посмотреть список файлов на Mikrotik-е:
/file print

Для регулярного копирования можно прямо на Mikrotik-е написать скрипт и запускать его из шедулера. Этим я пока не занимался, т.к. конфигурация роутера меняется редко.