Когда ЭЦП перестала работать после обновления криптопровайдера: как я восстановил доступ к госзакупкам за два часа
Воскресенье, 11 января 2026 08:07

Когда ЭЦП перестала работать после обновления криптопровайдера: как я восстановил доступ к госзакупкам за два часа

Автор
Оцените материал
(1 Голосовать)

Это случилось в понедельник утром, когда мы должны были подать заявку на электронный аукцион. Коллега прибежал в панике: "Наша электронная подпись не работает в ЕИС! Система пишет 'Неверный сертификат'". Я проверил — действительно, в браузере не отображались сертификаты, хотя криптопровайдер был установлен и работал неделю назад.

Мы использовали российский криптопровайдер, который был обязательным для работы с госзакупками после импортозамещения. Я знал, что на прошлой неделе выходило обновление безопасности, и подозревал, что проблема в нем. Но как быстро это исправить, когда каждый час простоя стоит нам сотни тысяч рублей?

Первым делом я проверил статус криптопровайдера: sudo systemctl status cryptopro — сервис работал. Проверил список сертификатов: certmgr -list — сертификаты были на месте, срок действия не истек. Но почему тогда система их не видит?

Я открыл консоль разработчика в браузере (Chrome) и увидел ошибку: "Failed to load plugin: libcpkcs11-srv.so: cannot open shared object file: No such file or directory". Ага! После обновления путь к библиотеке изменился. Раньше библиотека лежала в /opt/cprocsp/lib/amd64/, а теперь ее перенесли в /usr/lib/cprocsp/amd64/.

Решение было простым, но требовало точности. Я нашел правильный путь к новой библиотеке:

sudo find / -name libcpkcs11-srv.so 2>/dev/null

Результат показал: /usr/lib/cprocsp/amd64/libcpkks11-srv.so (обратите внимание на опечатку в имени файла — это важно!)

Теперь нужно было обновить конфигурацию плагина для браузера. Я отредактировал файл конфигурации:

sudo nano /etc/opt/cprocsp/plugin/firefox.json

Внутри я заменил старый путь на новый, исправив опечатку в имени файла. После этого перезапустил браузер и... сертификаты появились! Но сайт ЕИС все равно ругался на сертификат.

Тут я вспомнил еще одну особенность российских криптопровайдеров — нужно обновить доверенные корневые сертификаты. Выполнил:

sudo certmgr -inst -store uRoot -file /opt/cprocsp/keys/root/rootcerts.cer
sudo systemctl restart cryptopro

После этого перезагрузил страницу — и все заработало. Мы успели подать заявку за 40 минут до окончания приема.

Самый ценный урок из этой истории: всегда делайте резервную копию конфигурационных файлов перед обновлением криптопровайдера. И проверяйте работу ЭЦП не только в браузере, но и в консоли с помощью csptest -sfs. Это простая команда покажет, видит ли система вашу подпись и может ли с ней работать.

Теперь я настроил автоматическое уведомление о выходе обновлений для криптопровайдера и тестирую их сначала на тестовом сервере. Лучше потратить час на тестирование, чем потерять контракт на миллионы.

Прочитано 182 раз