Информация
Услуги
  • Внедрение
  • Настройка
  • Поддержка
  • Ремонт
Контакты
Новинка
Распродажа
Новости
Доставка
Оплата
Загрузки
  • Прошивки
    • WinBox
    • RouterOS
    • Мобильные приложения MikroTik
    • Архив
  • RouterOS
  • Мобильные приложения MikroTik
  • Архив
Форум
Настройка
    info@mikrotik.moscow
    +7 495 320-55-52
    Заказать звонок
    Mikrotik.moscow
    Каталог
    • Акции
      Акции
    • Маршрутизаторы
      Маршрутизаторы
    • Коммутаторы
      Коммутаторы
    • Радиомосты и уличные точки доступа
      Радиомосты и уличные точки доступа
    • Wi-Fi для дома и офиса
      Wi-Fi для дома и офиса
    • LTE/5G
      LTE/5G
    • Powerline адаптеры
      Powerline адаптеры
    • IoT устройства
      IoT устройства
    • Оборудование 60 ГГц
      Оборудование 60 ГГц
    • Материнские платы RouterBOARD
      Материнские платы RouterBOARD
    • Корпуса
      Корпуса
    • Интерфейсы
      Интерфейсы
    • SFP/QSFP трансиверы
      SFP/QSFP трансиверы
    • Аксессуары
      Аксессуары
    • Антенны
      Антенны
    • Архив
      Архив
    Войти
    0 Сравнение
    0 Избранное
    0 Корзина
    Скачать WinBox Скачать Прошивки Форум > RouterOS Форум > SwOS Форум > Железо
    Mikrotik.moscow
    Каталог
    Войти
    0 Сравнение
    0 Избранное
    0 Корзина
    Mikrotik.moscow
    Телефоны
    +7 495 320-55-52
    Заказать звонок
    0
    0
    0
    Mikrotik.moscow
    • +7 495 320-55-52
      • Назад
      • Телефоны
      • +7 495 320-55-52
      • Заказать звонок
    • info@mikrotik.moscow
    • г. Москва, ул. Бакунинская, 84
    • Пн-Пт: 09-00 до 18-00
      Сб-Вс: выходной


    • Кабинет
    • 0 Сравнение
    • 0 Избранное
    • 0 Корзина
    Главная
    Форум
    Форум
    Пользователи
    М.С. Антонов

    М.С. Антонов (Все сообщения пользователя)

    Форумы: RouterOS, Аппаратное обеспечение, SwOS, Обратная связь, Объявления, Сторонние инструменты
    Поиск  Пользователи  Правила  Войти
    Выбрать дату в календаре…Выбрать дату в календаре

    Страницы: 1
    Продление SSL-сертификата Let's Encrypt, RouterOS
     
    М.С. Антонов
    User
    Сообщений: 1 Регистрация: 06.11.2025
    #
    06.11.2025 12:18:16
    В представленных скриптах есть команды, которые могут завершиться с ошибками, и они блокируют выполнение скрипта.
    Доработал ваши примеры так:

    Код
    :local DomainName "your-domain" #доменное имя вашего домена
    :local certNameSSL "le_ssl" #Желаемое имя сертификата,но оно должно совпадать для задачи в sheduler
    :local PASS "12345678" #пароль, не менее восьми символов
    
    :log info "LE renewal"
    
    /ip service 
    enable [find where name="www"]
    /ip firewall filter
    enable [find where comment="HTTP"]
    
    :do {
       /certificate remove [find where common-name=$DomainName]
    } on-error={ :log info "LE old cert not exist" }
    
    :do {
       /certificate
       :log info "LE waiting renewal..."
       enable-ssl-certificate dns-name=$DomainName
       :delay 30s
       :log info "LE renewal complete"
       :local certName [get [find where common-name=$DomainName] name]
       :log info "LE new cert name=$certName"
       set  $certName name=$certNameSSL
       :do {
          /file remove $certNameSSL
       } on-error={ :log info "LE $certNameSSL file not exist" }
       export-certificate numbers= $certNameSSL export-passphrase=$PASS  type=pkcs12 file-name=$certNameSSL
       /system/scheduler set $certNameSSL interval=10w
    
    
       #TODO: Сделать отправку нового сертификата в службы
       #      или сделать привязку к SSTP, hotspot и т.д...
    
    
    } on-error={ 
       :log error "LE fail to get new cert" 
       :do {
          /certificate import file-name=$certNameSSL name=$certNameSSL passphrase=$PASS
       } on-error={ :log error "LE can't import old cert $certNameSSL"  }
       /system/scheduler set $certNameSSL interval=2d
    }
    
    /ip service 
    disable [find where name="www"]
    /ip firewall filter
    disable [find where comment="HTTP"]
    Скрипт создал командой:
    Код
    /system/script
    add name="lets_encrypt" policy=read,write,policy
    В поле "source" скрипта добавить сам скрипт :) , но это удобней через winbox
    Перед запуском скрипта должно быть добавлено правило для firewall, например из терминала:
    Код
    /ip firewall filter
    add action=accept chain=input comment=HTTP dst-port=80 protocol=tcp
    
    Данное правило должно располагаться ниже правила разрешающего уже  установленные и связанные соединения и выше запрещающего правила в  цепочке INPUT.

    А также требуется создать задачу в scheduler, например из терминала:
    Код
    /system/scheduler
    add name=le_ssl interval=10w start-time=01:23:45 on-event="/system script run lets_encrypt" policy=read,write,policy
    Поле "name" должно совпадать с указанным именем в скрипте "certNameSSL"
    А в поле "on-event" после "/system script run " указать имя созданного скрипта, в моём случае "lets_encrypt"

    После выполнения скрипта у вас ВСЕГДА будет иметься сертификат с именем "le_ssl" (как в примере) и файл в хранилище "le_ssl.p12", даже если пойдёт что-то не так с получением нового сертификата.
    Всем удачи...
    Изменено: М.С. Антонов - 06.11.2025 13:05:05
     
    Перейти    
    Страницы: 1
    +7 495 320-55-52
    info@mikrotik.moscow
    Электрозаводская, Бауманская
    Москва, ул. Бакунинская, 84с21
    Конфиденциальность Оферта
    © 2026 «Mikrotik.Moscow»
    Главная Каталог 0 Корзина 0 Избранные Кабинет 0 Сравнение Акции Контакты Услуги Бренды Отзывы Компания Лицензии Документы Реквизиты Поиск Блог Обзоры