О проекте
Веб-приложение для централизованного учёта сертификатов электронной подписи, контроля сроков действия сертификатов и закрытых ключей КриптоПро, а также автоматических уведомлений о приближении контрольной даты через MAX и Telegram.
- Стек
- PHP · SQLite · JavaScript · nginx · КриптоПро · MAX · Telegram
- Направление
- Мониторинг
- Год
- 2026
Задача
Сроки действия сертификатов электронной подписи и закрытых ключей приходилось контролировать вручную, при этом сведения могли находиться в разных системах и на разных рабочих местах. Пропущенное продление обнаруживалось уже после истечения срока, когда сертификат переставал использоваться в работе.
Задачей проекта стало создание небольшого самостоятельного веб-приложения, которое собирает сведения о сертификатах в одном месте, автоматически определяет ближайшую дату окончания и заранее предупреждает администратора о необходимости продления.
Реализация
CertMon реализован как веб-приложение на PHP с хранением данных в SQLite. Сертификаты можно добавить вручную из файлов CRT и CER либо синхронизировать с локальным хранилищем КриптоПро через браузер.
При синхронизации приложение учитывает не только срок действия самого сертификата, но и период использования закрытого ключа, если КриптоПро предоставляет эти сведения. Контрольной становится более ранняя из двух дат.
Периодическая проверка определяет сертификаты, требующие внимания, и отправляет уведомления через MAX, Telegram или одновременно в оба канала. Повторная успешная отправка одного и того же уведомления блокируется, а временная ошибка доставки не мешает повторить попытку при следующей проверке.
В приложении предусмотрены локальные учётные записи администраторов, ограничение числа неудачных попыток входа, завершение неактивных сеансов и защита изменяющих запросов. Рабочая база, конфигурация и журналы находятся вне открытой части сайта.
Закрытые ключи, ключевые контейнеры и ПИН-коды на сервер CertMon не передаются: при работе с КриптоПро браузер отправляет только необходимые сведения о сертификатах.
Результат
Все контролируемые сертификаты отображаются в едином интерфейсе с фактической контрольной датой и количеством оставшихся дней. Администратору больше не требуется вручную просматривать сроки в нескольких местах: CertMon сам выполняет регулярную проверку и заранее сообщает о сертификатах, которые необходимо продлить.
Приложение не требует отдельного сервера базы данных, не привязано к конкретной операционной системе и разворачивается как обычный PHP-сайт. Интеграция с КриптоПро остаётся на рабочем компьютере пользователя, поэтому для централизованного контроля не требуется переносить закрытые ключи на сервер.