Перейти к содержанию

Cертификаты в Mikrotik


Получение сертификата от Let's Encrypt

Если вам по какой-то причине понадобилось или захотелось получить доверительный сертификат. С версии RouterOS v7 появилась возможность получить встроенным методом microtik сертификат от Let's Encrypt. 🔗 help.mikrotik.com

Заметка

несколько преимуществ у LetsEncrypt перед самоподписанными сертификатами:

  1. Доверие браузеров: LetsEncrypt выдает сертификаты, которые уже встроены в большинство современных браузеров и программ. Это означает, что когда вы используете сертификат LetsEncrypt, пользователи вашего сайта не будут получать предупреждений о недоверенном сертификате.
  2. Автоматическое обновление: LetsEncrypt предоставляет автоматизированный процесс получения и обновления сертификатов. Это позволяет избежать необходимости вручную обновлять сертификаты каждый раз, когда они истекают.
  3. Бесплатность: LetsEncrypt предоставляет сертификаты бесплатно. Это значительно снижает затраты на обеспечение безопасного соединения для вашего веб-сайта. 4.Поддержка экосистемы: Использование LetsEncrypt способствует созданию общедоступной и доступной для всех экосистемы безопасности в Интернете.

Получить его можно с помощью команды:

Mikrotik terminal
/certificate enable-ssl-certificate dns-name=my.domain.com
Tip: DNS имя должно указывать на роутер, порт TCP/80 должен быть открытым. Если dns-name не указан, микротик автоматически подставит Cloud DDNS XXXXX.sn.mynetname.net.

Подстраховка

Перед началом лучше убрать политику управление mikrotik через web: webfig

Mikrotik terminal
/user/group/set polycy=!web full,read,write
Этим способом мы выключаем авторизацию через web, даже если данные введены корректно


Порядок действий

Question

Если у вас нету своего доменного имени, проверьте, включенна у вас служба DDNS в mikrotik

Mikrotik terminal
ip/cloud/set ddns-enabled=yes

Открываем 80 порт

Mikrotik terminal
ip/service/set www disabled=no
Добавляем правило в firewall
Mikrotik terminal
ip/firewall/filter/add chain=input action=accept protocol=tcp dst-port=80 in-interface-list=WAN place-before=1
Запускаем команду
Mikrotik terminal
/certificate enable-ssl-certificate 
Tip: DNS имя я не указываю, так как хочу получить сертификат на mikrotik cloud, также можно явно указать это /certificate enable-ssl-certificate dns-name=XXXXX.sn.mynetname.net


Возможные ошибки

Failure

progress: [error] http challenge validation failed, please make sure www service 
is enabled and your device is accessible by letsencrypt.org servers

C данной ошибкой столкнулся я. В моем случае, провайдер фильтрует 80,443 порт. Чтобы это понять, необходимо проверить, поступают пакеты на mikrotik или нет. Сделать это можно с помощью nmap,telnet или любого другого сервиса, например на сайте: 🔗 2ip.ru. При проверке правила фаервола счетчик должен увеличиваться.Если он увеличивается, значит, порт открыт, и пакеты доходят до микротика. Необходимо проверить настройки фаервола или что-то другое. У меня пакеты не доходят до моего микрота, поэтому можно попробовать связаться с провайдером и договориться чтобы он открыл их.

Tip: Провайдер не открыл мне порты, так что можно попробовать альтернативный метод получения сертификата например через DNS-01 или TLS-ALPN-01. Для метода DNS-01, например, требуется настройка специальных DNS-записей, а для метода TLS-ALPN-01 - установка временного TLS-сервера.


Получение сертификата от Let's Encrypt методом DNS-01