Все проекты

CertMon

Контроль сроков действия сертификатов электронной подписи

О проекте

Веб-приложение для централизованного учёта сертификатов электронной подписи, контроля сроков действия сертификатов и закрытых ключей КриптоПро, а также автоматических уведомлений о приближении контрольной даты через MAX и Telegram.

Стек
PHP · SQLite · JavaScript · nginx · КриптоПро · MAX · Telegram
Направление
Мониторинг
Год
2026

Задача

Сроки действия сертификатов электронной подписи и закрытых ключей приходилось контролировать вручную, при этом сведения могли находиться в разных системах и на разных рабочих местах. Пропущенное продление обнаруживалось уже после истечения срока, когда сертификат переставал использоваться в работе.

Задачей проекта стало создание небольшого самостоятельного веб-приложения, которое собирает сведения о сертификатах в одном месте, автоматически определяет ближайшую дату окончания и заранее предупреждает администратора о необходимости продления.

Реализация

CertMon реализован как веб-приложение на PHP с хранением данных в SQLite. Сертификаты можно добавить вручную из файлов CRT и CER либо синхронизировать с локальным хранилищем КриптоПро через браузер.

При синхронизации приложение учитывает не только срок действия самого сертификата, но и период использования закрытого ключа, если КриптоПро предоставляет эти сведения. Контрольной становится более ранняя из двух дат.

Периодическая проверка определяет сертификаты, требующие внимания, и отправляет уведомления через MAX, Telegram или одновременно в оба канала. Повторная успешная отправка одного и того же уведомления блокируется, а временная ошибка доставки не мешает повторить попытку при следующей проверке.

В приложении предусмотрены локальные учётные записи администраторов, ограничение числа неудачных попыток входа, завершение неактивных сеансов и защита изменяющих запросов. Рабочая база, конфигурация и журналы находятся вне открытой части сайта.

Закрытые ключи, ключевые контейнеры и ПИН-коды на сервер CertMon не передаются: при работе с КриптоПро браузер отправляет только необходимые сведения о сертификатах.

Результат

Все контролируемые сертификаты отображаются в едином интерфейсе с фактической контрольной датой и количеством оставшихся дней. Администратору больше не требуется вручную просматривать сроки в нескольких местах: CertMon сам выполняет регулярную проверку и заранее сообщает о сертификатах, которые необходимо продлить.

Приложение не требует отдельного сервера базы данных, не привязано к конкретной операционной системе и разворачивается как обычный PHP-сайт. Интеграция с КриптоПро остаётся на рабочем компьютере пользователя, поэтому для централизованного контроля не требуется переносить закрытые ключи на сервер.