Гайд: Почему КриптоАРМ видит сертификат действительным, но при подписи файла выдаёт ошибку

Почему КриптоАРМ показывает сертификат действительным, но при подписи файла выдаёт ошибку? Гайд по диагностике и устранению проблем с валидностью сертификатов.

2026.05.13                  


Гайд: Почему КриптоАРМ видит сертификат действительным, но при подписи файла выдаёт ошибкуГайд: Почему КриптоАРМ видит сертификат действительным, но при подписи файла выдаёт ошибку Вопрос от пользователя: почему при просмотре сертификатов в личном хранилище, криптоарм показывает, что с сертификатом все ок, но когда подписываешь файл этим же сертификатом, появляется предупреждении о недействительности сертификата.

В этом гайде объясним как и из-за чего это происходит.


Это классическая ситуация при работе с российскими средствами электронной подписи (КриптоАРМ + КриптоПро CSP). Разница в поведении объясняется тем, что при просмотре КриптоАРМ показывает только статические поля сертификата (срок действия, владелец, наличие привязки к контейнеру), а при подписании запускается полноценная криптографическая валидация в реальном времени, которая проверяет цепочку доверия, статус отзыва, назначение ключа, политики и синхронизацию времени.

Ниже подробный гайд по диагностике и устранению проблемы.


Почему возникает расхождение?

Этап Что проверяется
Просмотр в хранилище Наличие файла сертификата, срок действия, привязка к контейнеру, базовые расширения. Проверка цепочки и статуса отзыва может быть отключена или закэширована.
Подписание документа Полная проверка: актуальность цепочки доверия, статус отзыва (CRL/OCSP), назначение ключа (EKU), синхронизация времени, доступность приватного ключа, соответствие алгоритмов ГОСТ, политики ЭП.

Если хотя бы один из этих критериев не проходит, КриптоАРМ выдаёт предупреждение, даже если в хранилище сертификат отображается как «действительный».


Пошаговая диагностика

1. Проверьте системное время и часовой пояс

Самая частая причина. КриптоПро CSP и КриптоАРМ строго проверяют валидность сертификата относительно времени ЦА.
- Откройте Пуск → Параметры → Время и язык → Дата и время.
- Включите Установить время автоматически и Установить часовой пояс автоматически.
- Синхронизируйте: Панель управления → Дата и время → Вкладка "Время по Интернету" → Изменить параметры → Обновить сейчас.
- Допуск: отклонение > 5 минут часто ломает валидацию.

2. Проверьте назначение сертификата (Key Usage / EKU)

Сертификат может быть выпущен только для шифрования или аутентификации, но не для подписи.
- В КриптоАРМ: Сертификаты → Личные → Выберите сертификат → Свойства → Вкладка "Назначение".
- Должно быть указано: Подпись документа (или Цифровая подпись, Неотказуемость).
- Если стоит только Защищенное соединение с клиентом или Шифрование данных → сертификат не предназначен для подписи. Требуется перевыпуск.

3. Проверьте цепочку доверия

При подписании проверяется доверие ко всем звеньям цепочки, а не только к вашему сертификату.
- Откройте certmgr.msc (стандартный диспетчер сертификатов Windows).
- Перейдите в Личные → Сертификаты, найдите свой, откройте Состав → Поле "Цепочка сертификации".
- Все звенья должны иметь зелёную галочку и статус Этот сертификат действителен.

Решение:

Установите корневой и промежуточные сертификаты УЦ в соответствующие хранилища:
  • Доверенные корневые центры сертификации
  • Промежуточные центры сертификации
  • Обычно УЦ предоставляет пакет root.crt и ca.crt.

4. Проверьте статус отзыва (CRL / OCSP)

КриптоАРМ при подписании запрашивает актуальные списки отзыва.

Если:
  • Сертификат отозван УЦ
  • Нет доступа к интернету (невозможно загрузить CRL)
  • CRL просрочен
  • URL распространения CRL указан неверно

→ появится предупреждение о недействительности.

Как проверить:

  • В КриптоАРМ: Сервис → Настройки → Подписание → Проверка статуса отзыва.
  • Временно снимите галочку Проверять статус отзыва только для диагностики. Если подпись пройдёт → проблема в CRL/OCSP или сети.

Важно:

Не используйте этот режим в продакшене. Для постоянного решения обновите CRL или настройте локальный OCSP-резponder.

5. Проверьте контейнер приватного ключа и доступы

Сертификат может быть в хранилище, но приватный ключ недоступен, повреждён или имеет ограниченные права.
- Откройте Пуск → CryptoPro CSP → Вкладка "Сервис" → Протестировать.
- Выберите ваш сертификат, нажмите Протестировать.
- Если ошибка Контейнер не найден, Отказано в доступе, Ошибка ключа → проблема на уровне CSP.

Решение:

  • Для токенов (Rutoken, JaCarta): подключите устройство, проверьте драйверы, введите PIN.
  • Для флешки/реестра: проверьте права на папку C:\Users\%USERNAME%\AppData\Local\Crypto Pro\Keys.
  • Перерегистрируйте контейнер: CryptoPro CSP → Сервис → Установить личный сертификат (если ключ на носителе).

6. Настройки КриптоАРМ и CryptoPro CSP

  • Провайдер: Убедитесь, что в КриптоАРМ выбран CryptoPro CSP (не Standard или Microsoft Strong). Сервис → Настройки → Подписание → Провайдер криптографии.
  • Алгоритм хэширования: ГОСТ Р 34.11-2012 (34.11-2012/256 или /512). Если сертификат выпущен на ГОСТ-2001, а в настройках стоит 2012 (или наоборот) → ошибка валидации.
  • Формат ЭП: Отсоединённая/присоединённая. Некоторые УЦ требуют конкретный тип.

7. Лицензия и версии ПО

  • Открытая версия CryptoPro CSP не поддерживает некоторые алгоритмы или долгосрочные подписи. Проверьте лицензию: CryptoPro CSP → Справка → О программе.
  • Обновите КриптоАРМ и CryptoPro CSP до актуальных версий (поддержка ГОСТ-2012, исправления валидатора цепочек).
  • Проверьте совместимость с Windows (особенно после крупных обновлений 10/11).

8. Включите логирование для точной диагностики

  • КриптоАРМ: Сервис → Настройки → Журнал → Включить запись логов. Путь: %APPDATA%\CryptoArm\Logs\
  • CryptoPro CSP: Панель управления → CryptoPro CSP → Вкладка "Сервис" → Включить протоколирование. Логи в Просмотр событий → Журналы Windows → Приложение → Источник: CryptoPro CSP.
  • Ищите ошибки: CERT_E_REVOKED, CERT_E_UNTRUSTEDROOT, CRYPT_E_NOT_FOUND, NTE_BAD_KEY_STATE, E_INVALIDARG.

Чек-лист быстрой проверки

Шаг Что сделать Ожидаемый результат
1 Синхронизировать время Windows Время совпадает с сервером УЦ
2 Проверить EKU в свойствах сертификата Есть назначение «Подпись документа»
3 Открыть certmgr.msc → проверить цепочку Все звенья доверенные и действительны
4 Временно отключить проверку CRL в КриптоАРМ Подпись проходит → проблема в отзыве
5 CryptoPro CSP → Сервис → Протестировать Ключ доступен, ошибок нет
6 Проверить провайдер и алгоритм в настройках Совпадает с версией сертификата
7 Посмотреть логи КриптоАРМ / CryptoPro Точный код ошибки валидации

Важные замечания

  • Не отключайте проверку статуса отзыва на постоянной основе. Это нарушает требования 63-ФЗ и может привести к юридической недействительности подписи.
  • Сертификаты, выпущенные до 2022 г. на ГОСТ-2001, могут требовать дополнительных настроек в новых версиях CSP.
  • Если сертификат выпущен коммерческим УЦ (Тензор, Контур, Такском, СКБ и т.д.), проверьте его статус в личном кабинете УЦ: возможно, он приостановлен или заменён.
  • При работе в домене групповые политики могут блокировать доступ к хранилищу сертификатов или запрещать использование определённых алгоритмов.

Если после прохождения шагов ошибка сохраняется, пришлите:

  1. Точный текст предупреждения из КриптоАРМ
  2. Скриншот вкладки «Назначение» сертификата
  3. Результат CryptoPro CSP → Сервис → Протестировать
  4. Версии КриптоАРМ и CryptoPro CSP И мы постараемся помочь с решением данной проблемы приватно, без публикации на портале, если проблема будет касаться сугубо определённой организации.