RISH 2.8.1: wildcard-сертификаты Selectel и доверенный HTTPS для локальных сайтов
RISH — бесплатный проект. Если он помогает вам и вы планируете пользоваться Selectel, зарегистрируйтесь по моей реферальной ссылке. Тогда ваш аккаунт будет связан с автором RISH, и Selectel сможет начислять ему вознаграждение за оплаченные вами услуги, на которые распространяется партнёрская программа.

До сих пор RISH получал сертификаты Let’s Encrypt с помощью Certbot прямо на сервере. Для обычного публичного сайта это удобный вариант: домен ведёт на сервер, Let’s Encrypt обращается к нему по HTTP, подтверждает проверку и выдаёт сертификат.
Но у этого сценария в RISH есть два ограничения. Он не позволяет выпустить wildcard-сертификат *.site.ru для поддоменов одного уровня, а сайт во время проверки должен быть доступен из интернета. Поэтому тот же способ не подходит для локального сайта, который открывается только дома, в офисе или через внутреннюю сеть.
Главное изменение RISH 2.8.1 — в программе появилась альтернатива Certbot для HTTPS в Apache: установка готовых сертификатов из Менеджера сертификатов Selectel. Certbot остаётся в RISH, а новый вариант пригодится, когда нужен wildcard-сертификат, доверенный HTTPS для локального сайта или готовый сертификат на новом сервере ещё до переключения DNS.
Selectel подтверждает домен через DNS, выпускает сертификат и автоматически перевыпускает его. RISH ничего не выпускает на стороне Selectel — он скачивает уже готовый сертификат, проверяет, устанавливает в Apache и поддерживает локальную копию в актуальном состоянии.
Практический результат — не только один сертификат для множества поддоменов. Теперь обычный доверенный HTTPS можно настроить даже для локального сайта, который вообще не открыт в интернет.
Почему Certbot подходит не для каждого сайта
Сейчас Certbot в RISH подтверждает домен с помощью HTTP-01. Let’s Encrypt обращается к сайту по HTTP и проверяет специальный файл. В этот момент домен должен вести на нужный сервер, порт 80 должен быть доступен из интернета, а Apache — отвечать на запросы.
Для публичного сайта это нормальная и удобная схема. Но из неё следуют три понятных ограничения:
- локальный сайт на домашнем или офисном сервере проверить таким способом нельзя;
- если сервер недоступен, проверка и выпуск сертификата не состоятся;
- wildcard-сертификат
*.site.ruтребует подтверждения через DNS-01, а текущая интеграция Certbot в RISH использует HTTP-01.
Это создаёт неудобство и при переносе сайта на другой сервер. Пока публичная DNS-запись указывает на старый сервер, проверочный запрос HTTP-01 приходит именно туда — поэтому получить сертификат через Certbot на новом сервере заранее не получится. Если сначала переключить DNS, а потом выпускать сертификат, часть посетителей может попасть на новый сервер раньше, чем там появится рабочий HTTPS.
С сертификатом Selectel не нужно ждать переключения DNS, чтобы подготовить HTTPS на новом сервере. Сертификат уже выпущен независимо от обоих серверов, поэтому RISH может установить его до изменения A-записи. Когда DNS переключится, новый сервер будет сразу готов принимать HTTPS-запросы.
Selectel подтверждает домен иначе. Для DNS-01 нужна специальная TXT-запись, и сервис создаёт её самостоятельно в DNS-зоне, размещённой у Selectel. Веб-сервер в этой проверке не участвует и может быть недоступен из интернета.
По документации Selectel, сервис следит за сроком действия сертификата и начинает автоматический перевыпуск за 30 дней до его окончания. После этого новая версия остаётся в Selectel, пока её не скачать и не установить на веб-сервер. Эту часть работы и берёт на себя RISH.
Роли здесь разделены однозначно:
| Selectel | RISH |
|---|---|
| Подтверждает домен через DNS-01 | Находит уже выпущенный сертификат |
| Выпускает и автоматически перевыпускает сертификат | Скачивает сертификат, цепочку и приватный ключ |
| Хранит актуальную версию в Менеджере сертификатов | Проверяет файлы и устанавливает их в Apache |
| Предоставляет сертификат через API | Синхронизирует локальную копию после перевыпуска |
Что именно покрывает wildcard
Для домена site.ru в Selectel можно выпустить один сертификат, в котором будут указаны:
site.ru
*.site.ru
Основной домен здесь не является проблемой: site.ru добавлен в сертификат отдельно, а wildcard отвечает за его поддомены.
Сертификат *.site.ru подходит для любого количества поддоменов одного уровня, например:
www.site.ru
dev.site.ru
shop.site.ru
api.site.ru
Заранее перечислять каждый такой поддомен не требуется. Можно создавать новые сайты, и тот же сертификат продолжит им соответствовать.
Звёздочка заменяет только один уровень. Поэтому *.site.ru подходит для dev.site.ru, но не подходит для api.dev.site.ru. Для такого адреса понадобится отдельное имя в сертификате или wildcard *.dev.site.ru.
RISH учитывает это правило при установке. Основной домен сайта должен быть покрыт сертификатом. Если в конфигурации Apache есть дополнительные домены, которых в сертификате нет, RISH предупредит об этом и не добавит их в HTTPS-конфигурацию.
Главное применение: HTTPS для локальных сайтов
Wildcard удобен для публичных проектов с большим количеством поддоменов. Но гораздо интереснее другое применение — нормальный HTTPS в локальной сети.
Обычно локальный сайт работает с самоподписанным сертификатом. На основном компьютере его ещё можно вручную добавить в доверенные или один раз принять предупреждение. На телефоне, планшете, тестовом устройстве или другом компьютере настройку приходится повторять.
С автоматизацией ситуация ещё сложнее. Браузер, запущенный ИИ-агентом, тестовый инструмент или внешнее приложение могут просто отказаться открывать страницу с недоверенным сертификатом. Приходится отключать проверку TLS, устанавливать собственный центр сертификации и отдельно объяснять каждому инструменту, почему этому сертификату можно доверять.
Сертификат Let’s Encrypt из Selectel уже входит в обычную публичную цепочку доверия. Браузеры, мобильные устройства и ИИ-агенты воспринимают его так же, как сертификат публичного сайта. При этом сам сайт может оставаться внутри вашей сети.
Два способа направить локальный домен на сервер
Предположим, у вас есть домен site.ru, делегированный на DNS-хостинг Selectel, и сертификат:
site.ru
*.site.ru
Локальный сервер находится по адресу 192.168.1.50, а сайт разработки должен открываться как dev.site.ru. Сертификат уже подходит для этого домена, но устройствам ещё нужно объяснить, по какому адресу находится сервер. Сделать это можно двумя способами.
Первый вариант — публичная A-запись в Selectel:
dev.site.ru → 192.168.1.50
Когда компьютер или телефон запрашивает dev.site.ru, внешний DNS возвращает адрес 192.168.1.50. Внутри вашей сети это адрес локального сервера, поэтому браузер открывает нужный сайт. Домен соответствует wildcard-сертификату, и https://dev.site.ru работает без предупреждений.
За пределами вашей сети DNS вернёт тот же адрес, но частные адреса вида 192.168.x.x не маршрутизируются через публичный интернет. Сама по себе такая A-запись не создаёт внешний доступ к локальному серверу: для него по-прежнему понадобился бы отдельный маршрут, VPN или проброс портов.
При этом домен и указанный в DNS частный адрес будут видны публично. DNS не заменяет файрвол и не является средством ограничения доступа. Локальность сайта обеспечивают ваша сеть, маршрутизация и отсутствие ненужного проброса портов.
Второй вариант — локальная запись в роутере Keenetic. На локальном сервере RISH для этого есть пункт Домены Keenetic. Программа подключается к роутеру, показывает домены сайтов из конфигурации Apache и подставляет локальный IP-адрес сервера. После выбора в Keenetic сохраняется соответствие:
dev.site.ru → 192.168.1.50
Но в данном случае запись существует только в роутере. В публичном DNS Selectel записи dev.site.ru нет, поэтому домен и локальный адрес не публикуются. Компьютеры и телефоны, использующие Keenetic как DNS-сервер, получают нужный адрес внутри сети и открывают сайт с тем же доверенным wildcard-сертификатом.
Функция RISH позволяет добавить только выбранный домен либо выбранный домен вместе с www. Здесь важно помнить правило wildcard: сертификат *.site.ru покрывает dev.site.ru, но не покрывает www.dev.site.ru. Поэтому для локального сайта dev.site.ru следует добавить только сам домен, если более глубокий адрес не указан в сертификате отдельно.
Как выбрать между публичной записью и Keenetic
Локальная запись Keenetic не раскрывает поддомен и частный IP во внешнем DNS. Это хороший вариант, когда все нужные устройства находятся в одной сети и используют DNS роутера.
Но VPN-клиент, браузер или отдельное приложение может отправлять DNS-запросы через другой сервер или использовать DNS over HTTPS. Тогда локальная запись Keenetic будет проигнорирована.
В такой ситуации публичная A-запись в Selectel удобнее: какой бы внешний DNS ни использовало устройство, оно получит 192.168.1.50. При этом DNS отвечает только на вопрос, по какому адресу искать сайт. Если VPN забирает весь трафик и не оставляет маршрута в локальную сеть, одной записи всё равно будет недостаточно.
Некоторые роутеры и DNS-фильтры также блокируют публичные домены с частными адресами для защиты от DNS rebinding. Если такая защита включена, для домена потребуется исключение — либо можно вернуться к локальной записи Keenetic.
Что нужно настроить в Selectel
Перед установкой сертификата через RISH нужно:
- Добавить домен в актуальный DNS-хостинг Selectel.
- Делегировать его на NS-серверы Selectel.
- Создать A-запись для основного домена — Selectel указывает её наличие как условие выпуска сертификата.
- В Менеджере сертификатов выпустить сертификат для
site.ruи*.site.ru. - Дождаться, когда сертификат будет готов.
- Подключить DNS-зону Selectel в меню RISH.
Требование A-записи относится к основному домену, для которого выпускается сертификат. Публичная запись для каждого локального поддомена не нужна. dev.site.ru можно добавить в DNS Selectel с адресом 192.168.1.50 или оставить только в локальных записях Keenetic.
Проверка права на домен в обоих случаях выполняется через DNS-01: Selectel создаёт TXT-запись и не обращается к локальному сайту.
Сертификат доступен только в том проекте Selectel, в котором он был выпущен. Поэтому RISH должен быть подключён к правильному аккаунту и проекту. Повторно вводить доступы при установке сертификата не нужно: используются данные service user, уже сохранённые для управления DNS этой зоны.
Как установить сертификат в RISH
Откройте каталог сайта в Midnight Commander и перейдите в меню сертификатов. RISH покажет основной домен, дополнительные домены сайта и уже настроенный тип HTTPS.
Если сертификата ещё нет, в меню появится пункт:
Скачать и установить сертификат Selectel
RISH определит родительскую DNS-зону. Например, для dev.site.ru будет использована подключённая зона site.ru. Затем программа запросит готовые сертификаты из нужного проекта Selectel и покажет только те, которые покрывают основной домен сайта.
После выбора RISH скачает сертификат и начнёт установку. Если сертификат не покрывает один из дополнительных доменов сайта, программа прямо назовёт этот домен и не включит его в HTTPS-конфигурацию. После успешной установки тот же пункт меню позволит повторно скачать сертификат или выбрать другой.
Интеграция RISH 2.8.1 предназначена для штатной конфигурации Apache/httpd. Поддержка Nginx или Angie в этом релизе не заявляется.
Что RISH проверяет и где хранит сертификат
RISH не устанавливает файлы сразу после успешного ответа API. Сначала программа проверяет:
- сам сертификат, приватный ключ и цепочку удостоверяющих центров;
- совпадение сертификата с приватным ключом;
- срок действия;
- соответствие основному и дополнительным доменам сайта;
- корректность wildcard;
- отсутствие другой HTTPS-конфигурации, которую нельзя заменять автоматически.
Если для сайта уже настроен Certbot, самоподписанный сертификат или собственная конфигурация Apache, RISH не перезапишет её молча. Установка остановится, а существующий HTTPS останется без изменений.
Локальные копии хранятся отдельно от сертификатов Certbot:
/etc/pki/tls/rish/selectel/<dns-зона>/
Доступ к приватному ключу получает только root. Служебные данные для синхронизации находятся в /root/rish/certificates/selectel/, но пароль Selectel туда не копируется: RISH обращается к уже сохранённым настройкам DNS.
Один wildcard-сертификат может использоваться сразу несколькими сайтами одной зоны. Сертификат и ключ при этом не дублируются — каждый сайт получает собственную HTTPS-конфигурацию Apache, которая ссылается на общий комплект.
Перед изменением файлов RISH создаёт резервную копию. Затем проверяет конфигурацию Apache и только после этого применяет её. Если проверка или перечитывание конфигурации Apache завершается ошибкой, прежние сертификаты и настройки возвращаются на место.
Как работает автоматическая синхронизация
Selectel самостоятельно перевыпускает сертификат у себя, но локальные файлы на сервере от этого не меняются. Их обновляет синхронизация RISH.
После первой установки RISH предлагает включить её. Позже это можно сделать в том же меню сертификатов. Синхронизация нужна только тогда, когда на сервере есть хотя бы один установленный сертификат Selectel.
Systemd timer запускает проверку ежедневно. Базовое время — 03:00, к нему добавляется случайная задержка до часа. Поэтому обычное время запуска находится примерно между 03:00 и 04:00 по локальному времени сервера.
Если сервер был выключен ночью, пропущенная проверка выполнится после следующего запуска системы. RISH подключится к Selectel, сравнит доступную версию с локальной и при необходимости скачает новый комплект.
Перед заменой программа снова проверит сертификат и убедится, что он покрывает домены всех сайтов, использующих этот комплект. Затем создаст резервную копию, проверит Apache и перечитает конфигурацию. Если Apache не примет изменения, все сертификаты, затронутые этим запуском, будут возвращены к прежним версиям.
Результат синхронизации можно посмотреть в журнале:
journalctl -u rish-selectel-certificates-sync.serviceМеню сертификатов и диагностика
Общее меню теперь показывает, какой сертификат фактически использует сайт:
Используется сертификат: Selectel
Используется сертификат: Let’s Encrypt
Используется сертификат: самоподписанный
Если HTTPS не настроен, RISH сообщает об этом прямо. Если обнаружено несколько конфигураций, в меню будут перечислены все найденные типы, чтобы администратор сразу видел конфликт.
Меню и rish check также предупреждают, когда для установленных сертификатов Selectel синхронизация выключена, timer не работает или последняя попытка завершилась ошибкой. Это предупреждение, а не автоматическое исправление: сертификаты можно обновлять вручную, но состояние фоновой проверки не останется незаметным.
Для уже установленных сертификатов Certbot RISH проверяет наличие Certbot, состояние его timer и результат последнего обновления. В версии 2.8.1 это только диагностика — программа сообщает о проблеме, но не меняет настройку Certbot автоматически.
Что происходит при удалении
В меню появился общий пункт удаления сертификата. Действие зависит от того, какой вариант используется:
- сертификат Selectel удаляется с сайта только локально;
- самоподписанный сертификат удаляется с сервера;
- сертификат Certbot отзывается в Let’s Encrypt и удаляется через Certbot, если его не использует другой сайт.
Если один сертификат Certbot подключён к нескольким сайтам, RISH не станет отзывать его автоматически, чтобы не отключить HTTPS на остальных.
Для Selectel это принципиальное различие. RISH удаляет HTTPS-конфигурацию сайта и локальные файлы, но сертификат в панели Selectel остаётся. Его можно продолжать использовать на другом сервере или установить снова.
Если общий wildcard-сертификат подключён к нескольким сайтам, при удалении с одного сайта файлы сертификата и ключа сохраняются. Они будут удалены только после отключения последнего сайта. Тогда же RISH выключит ставшую ненужной автоматическую синхронизацию.
Та же безопасная очистка встроена в удаление сайта. RISH учитывает общие сертификаты, конфигурации Apache и сохранённые доступы DNS, а при ошибке возвращает прежнее состояние или оставляет данные для повторной попытки.
Почему изменилось хранение настроек DNS
Раньше включение и выключение меню DNS сопровождалось переименованием каталога:
/root/rish/dns
/root/rish/dns_bak
Для фоновой синхронизации это неудобно: сертификату нужны доступы Selectel даже тогда, когда пункт управления DNS скрыт в Midnight Commander.
Теперь настройки всегда остаются в /root/rish/dns, а видимость меню управляется служебным файлом:
/root/rish/dns/.enabled
Выключение пункта меню больше не перемещает и не удаляет настройки провайдеров. При обновлении старое состояние переносится автоматически. Если RISH одновременно обнаружит каталоги dns и dns_bak, программа не станет выбирать один из них наугад и предложит администратору указать нужный.
Также стало проще восстановиться после удаления зоны или устаревания доступов. Из аварийного меню можно удалить локальную связь с DNS-провайдером, не удаляя саму зону и записи у провайдера. Для запросов к Selectel добавлены ограничения времени, чтобы проблема сети или API не оставляла меню ждать бесконечно.
Selectel — не только сертификаты
Интеграция появилась на основе уже существующей в RISH работы с DNS Selectel. Этот сервис предоставляется бесплатно в дополнение к другим платным продуктам Selectel. Для доступа нужно завершить регистрацию и пополнить баланс минимум на 200 ₽. В актуальном DNS-хостинге не ограничено количество зон и ресурсных записей.
DNS-хостинг Selectel работает по технологии Anycast DNS. На официальной странице также перечислены точки присутствия DNS-серверов в Санкт-Петербурге, Москве, Екатеринбурге, Новосибирске, Киеве, Нью-Йорке, Пало-Альто, Лондоне, Амстердаме и Франкфурте. Условия подключения и актуальные NS-серверы приведены в документации DNS-хостинга.
Менеджер сертификатов тоже предоставляется бесплатно. Для доменов в DNS-хостинге Selectel он позволяет выпускать сертификаты Let’s Encrypt с автоматическим перевыпуском.
В почтовом сервисе Selectel до 1000 писем в месяц отправляется бесплатно. В этот лимит входят и неуспешные отправки, а после его превышения действует оплата по модели pay-as-you-go.
Для IP-адресов поддерживаемых продуктов Selectel по умолчанию действует бесплатная защита от DDoS на сетевом и транспортном уровнях L3/L4. Атаки на уровне приложений L7 в базовую защиту не входят.
Для бесплатного DNS-хостинга в аккаунте Selectel нужна хотя бы одна платная услуга. Удобный и недорогой вариант — зарегистрировать домен .RU или .РФ в Selectel: на момент публикации регистрация стоит 120 ₽, продление — 450 ₽ в год. После регистрации управление DNS-записями домена сразу будет делегировано Selectel.
Сама регистрация или продление домена не приносит автору вознаграждение: оно начисляется за другие оплаченные услуги Selectel, участвующие в партнёрской программе.
Если у вас ещё нет аккаунта, зарегистрируйтесь по моей реферальной ссылке. RISH остаётся бесплатным, а покупки услуг, участвующих в партнёрской программе, будут приносить автору вознаграждение.
Что проверить после обновления
После установки RISH 2.8.1:
- откройте меню сертификатов сайта и проверьте, правильно ли определён текущий тип HTTPS;
- при установке сертификата Selectel включите автоматическую синхронизацию или сделайте это позже из того же меню;
- проверьте показанное время следующего запуска;
- запустите
rish checkи просмотрите предупреждения; - если синхронизация завершилась ошибкой, откройте журнал
rish-selectel-certificates-sync.service.
RISH не вмешивается в существующую HTTPS-конфигурацию без явного выбора сертификата Selectel.
Итог
RISH 2.8.1 добавляет понятный путь от готового сертификата Selectel до работающего HTTPS в Apache. Selectel подтверждает домен через DNS-01, выпускает и автоматически перевыпускает сертификат. RISH скачивает его на сервер, проверяет, устанавливает и безопасно синхронизирует новые версии.
Один сертификат с site.ru и *.site.ru подходит для основного домена и любого количества поддоменов одного уровня. А поскольку выпуск не зависит от доступности веб-сервера из интернета, тот же сертификат можно использовать для локальных сайтов.
В результате https://dev.site.ru на сервере 192.168.1.50 открывается в обычном браузере, на мобильном устройстве или у ИИ-агента без предупреждений о самоподписанном сертификате. Адрес можно получить из публичной A-записи Selectel или из локальной записи Keenetic — публиковать сам сайт в интернете не требуется.




