Реестр доменов и SSL-сертификатов: веб-приложение с алертами
Реестр доменов и SSL-сертификатов: как спроектировать поля, правила алертов, AI-напоминания и отчет по рискам для продлений и владельцев.

Зачем нужен реестр доменов и сертификатов
Единый реестр доменов и SSL-сертификатов нужен, чтобы сайты и сервисы не падали из-за забытых продлений, потери доступа или тихих ошибок у регистратора. Пока все работает, кажется, что достаточно пары табличек. Но как только проектов становится больше одного, контроль расползается по почте, кабинетам регистраторов, чатам и заметкам.
Реестр особенно полезен, если у вас много внутренних и публичных сервисов, вы ведете домены клиентов как агентство, у вас несколько проектов и задачи распределены между разными людьми, а продления частично на автоплатеже, частично вручную.
Главная ценность реестра не в том, что он хранит даты. Он фиксирует ответственность и последствия: кто отвечает за конкретный домен или сертификат и что будет, если что-то пойдет не так. Типичная ситуация: домен куплен на личную почту бывшего сотрудника, оплата привязана к старой карте, а SSL выпускал подрядчик и не оставил инструкций. Проблема становится видимой только в момент сбоя.
Критичными обычно становятся события, которые ведут к простою или потере контроля:
- истечение домена или сертификата
- смена владельца, администратора, контактов или DNS без согласования
- ошибка автопродления (платеж не прошел, лимит карты, автоплатеж выключили)
- перенос к другому регистратору или хостингу без фиксации деталей
Простой пример: у агентства 20 клиентских сайтов. Один сертификат истекает в пятницу вечером, уведомления ушли на старую почту, а в понедельник часть заявок не проходит из-за предупреждения браузера. Реестр с алертами ловит это заранее и дает понятный план: что продлить, кто делает и к какому сроку.
Модель данных домена: какие поля хранить
Хороший реестр начинается с понятной карточки домена. Правило простое: храните то, что помогает быстро ответить на вопросы - кто владелец, кто отвечает, когда истекает, где обслуживается и как продлевается.
Базовая карточка домена
Обычно достаточно пяти групп данных:
- Идентификаторы: доменное имя, зона (TLD), внутренний тег проекта (например, "маркетинг" или "продукт").
- Регистрация: регистратор, дата регистрации, дата истечения.
- Ответственные: юрлицо-владелец, контактное лицо, команда, канал для уведомлений (почта или мессенджер).
- Инфраструктура: NS-серверы, ключевые записи (A/AAAA, CNAME), провайдер хостинга, CDN (если используется).
- Продление и оплата: автопродление (да/нет), способ оплаты, номер счета или заказа, плановый бюджет.
Эти поля лучше делать обязательными при создании записи, кроме DNS-деталей: их часто добавляют позже, когда домен уже в работе.
Статусы и "почему так"
Добавьте статус домена (активен, на переносе, на удалении, спорный, архив) и короткое поле "примечание" или "причина". Оно спасает, когда через месяц никто не помнит, почему домен поставили на перенос или почему автопродление выключено.
Пример: домен клиента истекает через 12 дней, автопродление отключено, ответственный сменился. Если в карточке есть актуальный контакт и канал уведомлений, алерт уйдет туда, где его действительно увидят, а не в старую почту бывшего менеджера.
Модель данных SSL-сертификата: что важно для продлений
Запись о сертификате должна отвечать на два вопроса: где он реально используется и когда становится рискованным. Если нет привязки к сервису и окружению, алерты будут шуметь, а в момент продления начнется поиск: "на каком сервере это вообще стоит".
Обязательные поля карточки
Начните с набора, который пригодится и для аудита, и для продлений: тип проверки (DV/OV/EV), признак wildcard, список SAN (дополнительные имена), центр сертификации (CA) и серийный номер. Дальше - даты выдачи и истечения, а также дата последней установки (часто она отличается от даты выпуска).
Отдельно храните параметры криптографии и то, где лежит ключ: алгоритм и размер ключа, формат (PEM/PFX), место хранения приватного ключа (секрет-хранилище, HSM, файловая система, у подрядчика). Это поле полезно для оценки рисков: сертификат можно продлить, но без доступа к ключу обновление сорвется.
Чтобы карточка отражала реальную картину, фиксируйте привязки:
- домен и поддомены, которые покрывает сертификат (включая SAN)
- сервис или продукт (например, "личный кабинет", "API") и окружение (prod/test)
- где установлен: балансировщик, веб-сервер, CDN или ingress
- способ обновления: ручной или авто (ACME/скрипты)
- статус: действует, скоро истечет, отозван, заменен, неизвестно
Правила качества данных
Добавьте простые проверки: дата истечения обязана быть позже даты выдачи, SAN не должен быть пустым, а поле "где установлен" не может оставаться неизвестным для prod.
Пример: wildcard закрывает *.example.ru, но сервис указан как test. Для таких сертификатов приоритет алерта может быть ниже, чем для prod, где на сертификате висит платежная страница.
Владельцы, ответственность и история изменений
Реестр перестает быть полезным, когда непонятно, кто отвечает за домен или сертификат. Поэтому лучше сразу договориться о схеме владельцев и не смешивать роли. У одного актива могут быть разные "хозяева", и это нормально: юридический владелец подписывает договоры, технический продлевает и чинит, финансовый оплачивает.
Практичный минимум ролей:
- Юрвладелец (организация, ИНН/название, контакт для претензий)
- Техвладелец (команда или человек, рабочая почта/телефон)
- Финансовый владелец (кто оплачивает, центр затрат/проект)
- Группа ответственности (дежурный, подрядчик, внешний клиент)
- Канал эскалации (куда поднимать срочно: чат/почта)
Группы ответственности удобнее хранить справочником: "Команда Web", "Дежурный SRE", "Подрядчик N", "Клиент X". Тогда при смене людей вы обновляете карточку группы, а не сотни активов.
История изменений нужна не для поиска виноватых, а чтобы быстро понять, что произошло. Фиксируйте: что поменялось (поле и старое/новое значение), кто изменил, когда и причину. Причина может быть короткой: "перенос к другому регистратору", "смена владельца проекта", "переезд на новый баланс".
Подтверждающие артефакты лучше хранить внутри вашей системы хранения (как ссылки на файлы или вложения): договор, письмо от регистратора, скрин подтверждения продления, счет. Это помогает в спорных ситуациях и при передаче дел.
Для продакшн-активов введите обязательность: нельзя сохранять запись без даты окончания, регистратора/CA, техвладельца и группы ответственности.
Правила алертов: пороги, приоритеты, эскалация
Хорошие алерты по продлениям работают как будильник: напоминают вовремя, но не будят каждые десять минут. Задайте окна до даты истечения и единый подход к приоритетам.
Практичный набор порогов:
- 60 дней: раннее планирование (владельцу и ответственному)
- 30 дней: проверить оплату и доступы (ответственному + резервному)
- 14 дней: высокий риск (ответственному + тимлиду)
- 7 и 1 день: критично (всем по цепочке, включая руководителя)
- просрочено: инцидент (самый высокий приоритет, отдельный канал)
Домен и SSL лучше алертить по-разному. Для домена часто важнее 30-14-7 дней: продление может пройти быстро, но цена ошибки высока. Для SSL полезны более частые проверки ближе к сроку, потому что просрочка сразу ломает сайт и интеграции.
Эскалация должна зависеть не от количества писем, а от отсутствия подтверждения. Пример: у алерта есть статус "принято в работу". Если через 24 часа его не подтвердили, система расширяет список адресатов, а через 48 часов добавляет руководителя.
Отдельно фиксируйте сигналы риска, которые повышают приоритет даже при дальнем сроке:
- отключено автопродление
- нет доступа к почте в WHOIS или к аккаунту регистратора
- неизвестен регистратор или непонятно, где хранится доступ
- владелец не назначен
- домен или сертификат завязан на критичный сервис
Чтобы снизить шум, объединяйте алерты по одному объекту в дневной дайджест, не дублируйте уведомления в разные каналы без причины и учитывайте рабочие дни. Если 7 дней попадают на праздники, поднимайте напоминание заранее.
Доступы и безопасность в реестре
Реестр доменов и SSL-сертификатов быстро становится критичным: лишний доступ или незаметная правка могут закончиться простоем и потерей контроля над продлениями. Правила доступа лучше продумать до того, как появятся первые алерты.
Роли и границы доступа
Минимальный набор ролей помогает держать порядок и не раздавать права "на всякий случай":
- Просмотр: видит сроки, владельцев и статусы, но не меняет данные.
- Редактор: обновляет даты продления, контакты и привязки к сервисам.
- Админ: управляет ролями, правилами алертов и справочниками.
- Финансовый доступ: видит суммы, счета, дату оплаты и кто подтвердил оплату.
Отдельно разделяйте контуры: продакшн и тест, а также внутренние и клиентские домены. Простой прием - разные пространства или проекты, чтобы тестовые записи не попадали в общие отчеты и не запускали реальные эскалации.
Аудит и защита чувствительных данных
Журнал действий полезен всегда: кто подтвердил продление, кто сменил владельца, кто отключил алерты, кто поменял NS или контакт регистратора. Это снимает споры и ускоряет разбор инцидентов.
Чувствительные поля маскируйте по умолчанию (почта владельца, телефон, номера договоров), а доступ к ключам и секретам держите отдельно от реестра. Реестр должен хранить факт наличия секрета и где он лежит, а не сам секрет.
Нужен и план восстановления. Представьте, что редактор массово сдвинул даты продления на год вперед. План действий может быть таким:
- быстро заморозить правки (временно снять права редактора)
- откатить изменения к последней корректной версии
- пересчитать алерты и зафиксировать причину в журнале
- выборочно проверить 10-20 критичных доменов
Как собрать MVP: пошаговый план работ
Цель MVP простая: ни один домен или сертификат не должен "протухнуть" незаметно, а ответственные должны получать понятные напоминания. Дальше лучше идти короткими итерациями и не пытаться сразу покрыть все редкие случаи.
План на 1-2 недели
Соберите источники данных и загрузите текущую базу: выгрузки из регистраторов, панели хостинга, файлы от подрядчиков, письма с уведомлениями. На старте достаточно импорта CSV и ручной правки 10-20 записей.
Опишите поля и обязательность. Для домена обычно хватает: доменное имя, регистратор, дата окончания, автопродление (да/нет), владелец (команда и конкретный человек), статус (активен/на переносе/закрыт), заметка. Для сертификата: домены в SAN, дата истечения, тип (DV/OV/EV), место установки (сайт/балансировщик/API), кто выпускает, контакт для валидации.
Сделайте справочники (регистраторы, команды, окружения) и настройте таблицы, формы, поиск и фильтры. Самые полезные фильтры: "истекает в 7/14/30 дней", "без владельца", "автопродление выключено", "непонятный источник".
Реализуйте ежедневную проверку сроков и очередь уведомлений: пересчитывать даты, создавать задачи на отправку сообщений и требовать подтверждения статуса.
Затем добавьте страницу "Риски" и журнал действий: кто изменил дату, кто сменил владельца, кто подтвердил продление. Проверьте на 10-20 объектах, специально воспроизведите пару проблемных кейсов (неверная дата, пустой владелец) и убедитесь, что алерты ведут себя предсказуемо.
Мини-тест перед релизом
Попросите двух людей из разных команд найти "свои" домены и подтвердить ответственность. Если хотя бы три объекта остаются без владельца или без даты, MVP еще рано считать готовым.
AI-напоминания: как генерировать текст и не ошибаться
AI удобно использовать как "писателя" для уведомлений, но факты должны приходить из реестра. Тогда напоминания про учет продлений доменов не превращаются в угадайку, а команда получает единый стиль сообщений.
Какие данные передавать в генерацию
Передавайте в модель только то, что вы уже храните и чему доверяете. Лучше отправлять структурированный объект (JSON), а не свободный текст. Минимальный набор:
- объект: домен или сертификат, имя, окружение (prod/test)
- конкретные даты: истечение, следующее окно работ, дата последнего продления
- владелец: ответственный, резервный, канал связи
- статус: активен, на продлении, просрочен, в миграции
- причина риска: нет доступа к регистратору, неоплачен счет, неизвестный владелец, смена DNS
Если каких-то данных нет, AI должен писать "не указано" и просить заполнить, а не придумывать.
Тон и типы сообщений
Обычно достаточно 2-3 вариантов тональности. Для чатов - коротко и без лишних деталей, для почты - с контекстом и чеклистом. Общий стиль лучше держать нейтральным, без паники.
Чаще всего хватает четырех типов:
- напоминание: "истекает через N дней" + следующий шаг
- эскалация: порог пройден и нет реакции, с указанием кому передано
- запрос подтверждения: "продлили? пришлите номер счета или дату оплаты"
- разбор после просрочки: что сломалось и какие действия нужны, чтобы не повторилось
Контроль качества простой: запрет на выдумывание фактов, обязательные конкретные даты и один понятный следующий шаг. Пример: "Домен example.ru истекает 2026-02-10. До 2026-01-31 подтвердите оплату у регистратора или передайте доступ ответственному Иванову".
Чтобы сообщения можно было проверять и повторять, храните логи: исходные данные, промпт, версию шаблона, дату генерации и итоговый текст.
Отчет по рискам: что показывать руководителю и команде
Отчет по рискам нужен, чтобы за 2-3 минуты стало ясно: что может упасть и кто за это отвечает. Для реестра полезно договориться, что именно считается риском, и показывать это одинаково каждую неделю.
Что считать риском и как оценивать
Риск - это не только "истекает через 3 дня". Частые причины:
- близкое истечение домена или сертификата (и нет подтвержденного плана продления)
- неизвестный владелец или нет ответственного в компании
- нет доступа к аккаунту регистратора/CA (или доступ на личной почте)
- продление вручную без автопродления и без напоминаний
- данные в реестре не совпадают с фактом (например, другой регистратор или дата)
Скоринг держите простым: низкий/средний/высокий. В отчете всегда пишите причину, почему риск попал в категорию, иначе статус выглядит субъективным.
Как должен выглядеть отчет
Удобная структура - три блока. Первый: топ-10 рисков (домен/сертификат, сервис, дата истечения, владелец, текущий статус, следующий шаг). Второй: "сделать сегодня" (1-5 конкретных действий, например: запросить доступ, включить автопродление, оплатить счет). Третий: "план на неделю" (что требует согласований, денег или изменений в процессах).
Добавьте срезы, чтобы руководитель видел картину: по командам, по клиентам, по регистраторам, по зонам, по окружениям (prod/stage). Перед отправкой сверяйте выводы с полями реестра и журналом действий, чтобы не пугать команду ложными красными алертами.
Пример: реестр для агентства или внутреннего ИТ-отдела
Представим агентство, которое ведет 40 доменов клиентов и 25 SSL-сертификатов. Регистраторов несколько, у части проектов доступы у клиента, у части - у агентства. Ответственные тоже разные: аккаунт-менеджер общается с клиентом, техлид отвечает за инфраструктуру, бухгалтерия оплачивает счета.
В такой картине реестр работает как общий источник правды. Неделя с ним выглядит предсказуемо:
- в понедельник приходит краткий отчет по рискам: что истекает за 14 и 30 дней, где нет владельца, где не заполнен контакт для подтверждения
- менеджер подтверждает у клиента, что продление согласовано, и обновляет статус в карточке
- техлид проверяет сертификаты с ручной валидацией (DNS/HTTP) и фиксирует, кто будет делать выпуск
- если за 7 дней нет статуса или оплаты, срабатывает эскалация на руководителя группы
Типичная ошибка: у домена сменился владелец, но в карточке остался старый ответственный, и алерт уходит не тому. Исправление должно занимать минуты: меняете владельца, а в журнале видно, кто и когда обновил поле. Получатели будущих уведомлений пересчитываются автоматически.
Экономия времени обычно заметна на фильтрах и пакетных действиях: один список, фильтр "истекает за 14 дней" - и вы сразу ставите задачи на продление и сбор счетов, вместо ручного поиска по почте и таблицам.
Лучше всего дисциплинируют простые правила: обязательный владелец у каждой записи, журнал изменений и эскалация на руководителя, если статус не обновляется.
Частые ошибки при учете продлений и уведомлениях
Чаще всего процесс ломается не из-за техники, а из-за путаницы в понятиях. Домен и SSL-сертификат живут разной жизнью: у них разные владельцы, разные даты, разные поставщики. Если хранить их "в одной таблице без правил", быстро появляются дубли, а потом невозможно понять, что именно скоро истекает.
Еще одна проблема - неправильные даты. Когда дата хранится как текст ("01.02.2026"), сортировка начинает врать, а алерты срабатывают не вовремя. Для реестра это прямой риск простоя: уведомление приходит поздно, продление не успевают сделать.
Часто алерты делают "в лоб": письмо ушло - значит задача выполнена. Но без подтверждения (статус, комментарий, кто принял в работу) уведомления превращаются в шум, и команда привыкает их игнорировать.
Что обычно ломает процесс:
- домен и сертификат не связаны уникальными ID, поэтому непонятно, какой сертификат относится к какому домену
- нет истории изменений, и потом невозможно понять, кто отключил автопродление или сменил владельца
- алерты не требуют закрытия действия (например, "продлено", "проверено у регистратора")
- даты и часовые пояса не нормализованы, поэтому пороги 30/14/7 дней плавают
- AI получает мало контекста и пишет общие напоминания без конкретики
Пример: сертификат обновили, а домен забыли продлить, потому что алерт был только по SSL. Исправляет это простое правило: каждое уведомление должно указывать конкретный объект, ответственного и следующий шаг.
Короткий чеклист перед запуском в работу
Перед тем как реестр станет единственным источником правды, один раз проверьте базовые вещи. Это занимает меньше часа, зато снижает риск внезапного падения сайта из-за просрочки.
Минимальные данные заполнены
Пробегитесь по карточкам и убедитесь, что реестр не превращается в список "голых" записей. В каждой записи должны быть данные, которые позволяют продлить без поисков по чатам и почте.
По доменам: кто владелец, у какого регистратора, когда истекает, включено ли автопродление, куда писать и звонить при проблеме.
По сертификатам: дата окончания, где стоит (сайт, API, балансер), кто отвечает, какой способ обновления принят (вручную, ACME, через хостинг).
Алерты работают и проверены
Настройте простые пороги (например, за 30, 14 и 7 дней) и заранее решите, что происходит, если реакции нет. Хорошая практика - иметь тестовый домен или сертификат с близкой датой, чтобы прогнать весь цикл и убедиться, что уведомления доходят, а приоритеты выставляются правильно.
Отдельно проверьте две вещи: есть ли журнал изменений (кто и что поправил) и есть ли понятная кнопка вроде "подтвердить продление/обновление", чтобы закрывать событие и фиксировать факт.
Отчет по рискам читается без объяснений
Еженедельный отчет должен быть понятен с первого взгляда: что истекает скоро, у чего нет ответственного, где неясен способ обновления, что уже просрочено. Если используете AI-напоминания, закрепите шаблон текста и правила, чтобы в сообщениях не было домыслов: только данные из реестра и четкий следующий шаг.
Следующие шаги: как быстро собрать приложение в TakProsto
Начните не с разработки, а с правил. Соберите текущий список доменов и сертификатов из регистраторов, таблиц и писем. Договоритесь об одном владельце на объект (человек или команда) и о простых статусах, которые понимают все: например, "в работе", "ок", "нужна оплата", "ждем подтверждение", "риск".
Если нужен быстрый способ превратить эти правила в рабочее приложение, TakProsto (takprosto.ai) позволяет собрать веб-сервис через чат: описываете сущности, поля и экраны, а затем получаете интерфейс и бэкенд без ручной рутины.
Практичный минимальный план:
- описать поля и статусы, назначить ответственного за каждую запись
- сделать формы добавления и редактирования, импорт из CSV
- настроить правила алертов по датам (например, 30/14/7 дней) и приоритет
- добавить еженедельный отчет по рискам для команды
- настроить роли доступа: кто видит, кто меняет, кто подтверждает
Чтобы снизить риск ошибок при изменениях правил и схемы данных, полезно делать снимки состояния и иметь возможность отката.
После MVP расширяйтесь по потребности: интеграции с регистраторами, автопроверка сертификатов, клиентские кабинеты, отчеты по SLA и история эскалаций. Главное - назначьте регулярный обзор отчета по рискам и держите реестр доменов и SSL-сертификатов живым процессом, а не разовой таблицей.
FAQ
Зачем вообще нужен реестр доменов и SSL-сертификатов, если их немного?
Начните с простого правила: один реестр как единственный источник правды, где видно сроки, владельцев и способ продления. Даже если доменов мало, реестр предотвращает ситуации, когда уведомления уходят на старую почту, а продление зависит от личных доступов.
Какие поля обязательны в карточке домена для MVP?
Минимум: доменное имя, регистратор, дата истечения, автопродление (да/нет), владелец (команда и человек), статус и короткая заметка «почему так». Этого достаточно, чтобы быстро понять, кто отвечает и что делать при риске.
Что обязательно хранить по SSL-сертификату, чтобы продления не превращались в поиски?
Зафиксируйте тип (DV/OV/EV), wildcard или нет, SAN-имена, CA, серийный номер, даты выдачи и истечения, где установлен сертификат (prod/test и конкретная точка), и способ обновления (ручной или авто). Отдельно укажите, где хранится приватный ключ, иначе продление может сорваться из-за отсутствия доступа.
Как правильно назначать владельцев и ответственность, чтобы не было путаницы?
Разделите роли: юридический владелец, технический владелец и финансовый. В реестре должно быть понятно, кто продлевает, кто платит и куда эскалировать срочные проблемы, чтобы не было «ничейных» доменов и сертификатов.
Нужно ли вести историю изменений в реестре и что в ней фиксировать?
Сделайте историю изменений обязательной для важных полей: сроков, владельцев, регистратора/CA, NS и статусов. Записывайте, что поменяли, кто, когда и короткую причину, чтобы быстро восстановить ход событий без споров и догадок.
Какие пороги алертов по срокам продления лучше поставить по умолчанию?
Практичный набор порогов: 60, 30, 14, 7 и 1 день до истечения, плюс отдельный режим для просрочки как инцидент. Эскалацию привязывайте к отсутствию подтверждения «принято в работу», а не к количеству отправленных уведомлений.
Как избежать «спама» алертами и при этом не пропускать критичное?
Снижайте шум за счет дайджестов и объединения уведомлений по одному объекту, а также за счет приоритизации по окружению и критичности сервиса. Если объект test или не влияет на ключевой трафик, алерты можно делать мягче, но prod лучше держать строго.
Как организовать доступы и безопасность в реестре, чтобы не потерять контроль?
По умолчанию разделите права на просмотр, редактирование и администрирование, а финансовые данные показывайте отдельной роли. Секреты и ключи не храните в реестре; храните только факт наличия секрета и место, где он лежит, плюс аудит действий для всех правок.
С чего начать MVP реестра за 1–2 недели, если сейчас все в таблицах и письмах?
Соберите данные из кабинетов регистраторов и хостинга, загрузите CSV, заведите справочники (команды, регистраторы, окружения) и настройте фильтры «истекает в 7/14/30 дней», «без владельца», «автопродление выключено». Затем добавьте ежедневную проверку сроков, очередь уведомлений, журнал действий и страницу «Риски».
Как правильно использовать AI для напоминаний, чтобы он не выдумывал факты?
Используйте AI как генератор текста, а не как источник фактов: передавайте ему только структурированные данные из реестра и требуйте конкретные даты и один следующий шаг. Если данных не хватает, сообщение должно прямо сказать «не указано» и попросить заполнить, а не додумывать.