Перейти к содержимому

RISH 2.8.1: wildcard-сертификаты Selectel и доверенный HTTPS для локальных сайтов

25 июля 2026

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.

Роли здесь разделены однозначно:

SelectelRISH
Подтверждает домен через 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 нужно:

  1. Добавить домен в актуальный DNS-хостинг Selectel.
  2. Делегировать его на NS-серверы Selectel.
  3. Создать A-запись для основного домена — Selectel указывает её наличие как условие выпуска сертификата.
  4. В Менеджере сертификатов выпустить сертификат для site.ru и *.site.ru.
  5. Дождаться, когда сертификат будет готов.
  6. Подключить 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 — публиковать сам сайт в интернете не требуется.

Основатель проекта RISH