CryptoPro CSP: ошибка 0x80090020 (NTE_FAIL) — подпись не создаётся в Windows 10/11 (2026)

CryptoPro CSP: ошибка 0x80090020 (NTE_FAIL) — подпись не создаётся в Windows 10/11 (2026)

Если при подписании документов или входе на гос-сайт вылезает 0x80090020 (NTE_FAIL), чаще всего проблема не “в сертификате вообще”, а в том, что Windows/КриптоПро в этот момент не могут нормально обратиться к закрытому ключу. Ниже план, который помогает в большинстве случаев: от быстрых проверок до аккуратной переустановки без потери ключей.

Коротко: что проверить сразу

  • Носитель с ключом подключён: Рутокен/JaCarta/eToken вставлен в USB, индикатор горит.
  • Сертификат установлен с приватным ключом (не “публичная копия”).
  • Дата и время Windows правильные (разница даже в 10 минут иногда ломает подпись/проверки).
  • Подписываете в том же браузере/программе, где установлен CryptoPro Plug-in/расширение.
  • Если ключ не на токене, а “на компьютере” (в реестре/профиле) — сначала сделайте резервную копию контейнера.
Нужна помощь? Подключусь удалённо: проверю контейнер и сертификат, поставлю/починю плагины, приведу CryptoPro CSP в порядок и доведу подпись до результата.

1) Что такое 0x80090020 (NTE_FAIL) простыми словами

Это “общая” ошибка криптопровайдера: операция не завершилась. В контексте КЭП/ЭЦП она почти всегда означает одно из трёх:

  • Закрытый ключ недоступен (токен не виден, драйвер токена не встал, контейнер “потерялся”, нет прав).
  • Компоненты CryptoPro конфликтуют (плагин/расширение не той версии, остатки старой установки, две версии рядом).
  • Сломались условия доверия (неверное время, сертификат просрочен/отозван, нет корневых/промежуточных, но это реже даёт именно NTE_FAIL).

Поэтому идём по шагам и отсеиваем причины сверху вниз.

2) Проверяем носитель и драйвер токена

Если ключ на токене, Windows должна видеть устройство без ошибок.

  1. Откройте Диспетчер устройств → разделы «USB-контроллеры», «Смарт-карты» или «Устройства безопасности».
  2. Если рядом с устройством токена жёлтый значок или “Неизвестное устройство” — сначала ставим/переустанавливаем драйвер носителя.
  3. Переподключите токен в другой USB-порт (желательно сзади системного блока), без удлинителей и хабов.

Важно: если носитель периодически отваливается, подпись может срываться “через раз”. В таком случае проблема часто в порту/кабеле/хабе или в драйвере токена, а не в CryptoPro.

Официальные страницы (чтобы скачать драйвер с сайта производителя):

3) Проверяем, что сертификат установлен с приватным ключом

Самая частая ситуация у новичков: сертификат импортировали “как файл”, но без привязки к закрытому ключу. В итоге подпись не создаётся, и вы видите NTE_FAIL.

  1. Нажмите Win+R → введите certmgr.msc → Enter.
  2. Слева: ЛичноеСертификаты.
  3. Откройте ваш сертификат двойным кликом и проверьте: внизу должно быть сообщение вида “У вас есть закрытый ключ, соответствующий этому сертификату”.

Если такой строки нет, то подпись делаться не будет. Что делать:

  • Если ключ на токене: обычно нужно установить сертификат с носителя через утилиту носителя или через CryptoPro (в зависимости от сценария).
  • Если вам выдали контейнер/ключевой файл: сначала импортируйте контейнер/ключ, потом установите сертификат.

4) Проверяем дату/время и часовой пояс

Сбившееся время может ломать подписывание и проверку цепочек. Для начала проверьте “в лоб”: время на панели задач совпадает с реальным.

  1. Откройте ПараметрыВремя и языкДата и время.
  2. Включите «Устанавливать время автоматически» и «Устанавливать часовой пояс автоматически» (если доступно).
  3. Нажмите «Синхронизировать сейчас».

Командная строка (Администратор) — выполнять по одной:

w32tm /query /status
w32tm /resync

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

5) Плагин/расширение браузера: частая причина “всё установлено, но не подписывает”

Для подписи на сайтах обычно нужен CryptoPro Browser Plug-in и (в зависимости от браузера) расширение. Типичные симптомы:

  • Сайт видит сертификат, но на этапе подписи вылетает ошибка.
  • В одном браузере работает, в другом нет.
  • После обновления браузера подпись “умерла”.

Что сделать аккуратно:

  1. Обновите CryptoPro CSP до актуальной версии (с сайта CryptoPro или вашей организации).
  2. Переустановите CryptoPro Browser Plug-in и расширение для вашего браузера.
  3. Перезапустите браузер полностью: закройте все окна, потом откройте заново.

Официальная страница производителя (для скачивания компонентов):

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

6) Права доступа: когда ключ “виден”, но подписывать не даёт

Если сертификат с ключом есть, токен на месте, но ошибка остаётся, проверьте два момента:

  • Вы подписываете под тем же пользователем Windows, под которым устанавливался сертификат/контейнер (особенно если ключ не на токене).
  • Запускаете приложение “обычно”, а не из-под другого пользователя/администратора, который не видит ваш профиль.

Для новичка простой тест: попробуйте подписать в “обычном режиме” и, отдельно, запустив браузер/программу от имени администратора. Если в одном режиме работает, а в другом нет, значит упираемся в права/профиль.

7) Быстрая диагностика, если ничего не ясно

Команды ниже не “чинят”, а помогают понять, что именно видит система. Их можно пропустить, но они полезны, если ошибка упёртая.

PowerShell (Администратор) — выполнять по одной:

Get-Date
Get-PnpDevice -PresentOnly | Where-Object {$_.FriendlyName -match "Rutoken|JaCarta|eToken|Smart"} | Select-Object Status,Class,FriendlyName
Get-ChildItem Cert:\CurrentUser\My | Select-Object Subject, NotAfter, Thumbprint

Если список сертификатов пустой или ваш сертификат давно истёк, то “лечить CSP” смысла мало, нужно приводить в порядок именно сертификат/выпуск.

8) Аккуратная переустановка CryptoPro CSP без потери ключей

Если после проверок выше NTE_FAIL не ушёл, чаще всего помогает “чистая” переустановка CSP и связанных компонентов.

  • Если ключи на токене: вы ничего не потеряете, ключи физически на носителе.
  • Если ключи “на компьютере”: перед удалением лучше сделать резервную копию контейнера. Если не уверены, не рискуйте и зовите специалиста.

Порядок действий (через интерфейс, максимально безопасно):

  1. Отключите токен от USB.
  2. Откройте Панель управленияПрограммы и компоненты.
  3. Удалите: CryptoPro CSP, CryptoPro Browser Plug-in, старые/лишние плагины, которые явно относятся к подписи (если знаете).
  4. Перезагрузите ПК.
  5. Установите заново CryptoPro CSP, затем Browser Plug-in/расширение.
  6. Перезагрузите ещё раз, подключите токен и проверьте подпись.

Почему две перезагрузки? У CryptoPro и драйверов носителей есть службы и фильтры. Перезагрузка реально сокращает “странные” ошибки после установки.

9) Типичные причины, почему ошибка возвращается

  • Обновили браузер и расширение/плагин стало отключено или несовместимо.
  • Поменяли пользователя Windows или запускаете программу “не под тем профилем”.
  • Сбилось время после выключения питания/обновления/замены батарейки BIOS.
  • Токен подключён через хаб и иногда “отваливается” на доли секунды.
  • Сертификат истёк или выпущен новый, а вы пытаетесь подписать старым.

FAQ

Подпись работает в одной программе, но не работает на сайте.

Это почти всегда про браузер: плагин/расширение, режим подписи на сайте или блокировка со стороны защиты браузера. Начните с шага про плагины: переустановка Browser Plug-in и включение расширения.

Токен виден, сертификат есть, но в момент подписи спрашивает PIN и после него ошибка.

Проверьте, что PIN вводится в “правильное” окно (иногда всплывает за браузером). Если PIN точно верный, а ошибка остаётся, переустановите драйвер токена и CryptoPro Plug-in, затем попробуйте снова.

Можно ли обойтись без команд вообще?

Да. Самые важные шаги делаются через интерфейс: время Windows, certmgr.msc и переустановка компонентов. Команды в статье только для диагностики, если нужно понять, что видит система.

Читайте также: