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

Если при подписании документов или входе на гос-сайт вылезает 0x80090020 (NTE_FAIL), чаще всего проблема не “в сертификате вообще”, а в том, что Windows/КриптоПро в этот момент не могут нормально обратиться к закрытому ключу. Ниже план, который помогает в большинстве случаев: от быстрых проверок до аккуратной переустановки без потери ключей.
Коротко: что проверить сразу
- Носитель с ключом подключён: Рутокен/JaCarta/eToken вставлен в USB, индикатор горит.
- Сертификат установлен с приватным ключом (не “публичная копия”).
- Дата и время Windows правильные (разница даже в 10 минут иногда ломает подпись/проверки).
- Подписываете в том же браузере/программе, где установлен CryptoPro Plug-in/расширение.
- Если ключ не на токене, а “на компьютере” (в реестре/профиле) — сначала сделайте резервную копию контейнера.
1) Что такое 0x80090020 (NTE_FAIL) простыми словами
Это “общая” ошибка криптопровайдера: операция не завершилась. В контексте КЭП/ЭЦП она почти всегда означает одно из трёх:
- Закрытый ключ недоступен (токен не виден, драйвер токена не встал, контейнер “потерялся”, нет прав).
- Компоненты CryptoPro конфликтуют (плагин/расширение не той версии, остатки старой установки, две версии рядом).
- Сломались условия доверия (неверное время, сертификат просрочен/отозван, нет корневых/промежуточных, но это реже даёт именно NTE_FAIL).
Поэтому идём по шагам и отсеиваем причины сверху вниз.
2) Проверяем носитель и драйвер токена
Если ключ на токене, Windows должна видеть устройство без ошибок.
- Откройте Диспетчер устройств → разделы «USB-контроллеры», «Смарт-карты» или «Устройства безопасности».
- Если рядом с устройством токена жёлтый значок или “Неизвестное устройство” — сначала ставим/переустанавливаем драйвер носителя.
- Переподключите токен в другой USB-порт (желательно сзади системного блока), без удлинителей и хабов.
Важно: если носитель периодически отваливается, подпись может срываться “через раз”. В таком случае проблема часто в порту/кабеле/хабе или в драйвере токена, а не в CryptoPro.
Официальные страницы (чтобы скачать драйвер с сайта производителя):
- Рутокен: rutoken.ru
- JaCarta: aladdin-rd.ru
- SafeNet/eToken: thalesgroup.com
3) Проверяем, что сертификат установлен с приватным ключом
Самая частая ситуация у новичков: сертификат импортировали “как файл”, но без привязки к закрытому ключу. В итоге подпись не создаётся, и вы видите NTE_FAIL.
- Нажмите Win+R → введите
certmgr.msc→ Enter. - Слева: Личное → Сертификаты.
- Откройте ваш сертификат двойным кликом и проверьте: внизу должно быть сообщение вида “У вас есть закрытый ключ, соответствующий этому сертификату”.
Если такой строки нет, то подпись делаться не будет. Что делать:
- Если ключ на токене: обычно нужно установить сертификат с носителя через утилиту носителя или через CryptoPro (в зависимости от сценария).
- Если вам выдали контейнер/ключевой файл: сначала импортируйте контейнер/ключ, потом установите сертификат.
4) Проверяем дату/время и часовой пояс
Сбившееся время может ломать подписывание и проверку цепочек. Для начала проверьте “в лоб”: время на панели задач совпадает с реальным.
- Откройте Параметры → Время и язык → Дата и время.
- Включите «Устанавливать время автоматически» и «Устанавливать часовой пояс автоматически» (если доступно).
- Нажмите «Синхронизировать сейчас».
Командная строка (Администратор) — выполнять по одной:
w32tm /query /status
w32tm /resync
Если после синхронизации подпись ожила, значит проблема была в времени. Такое бывает даже на новом ПК после замены батарейки BIOS, сбоя обновления или долгого простоя.
5) Плагин/расширение браузера: частая причина “всё установлено, но не подписывает”
Для подписи на сайтах обычно нужен CryptoPro Browser Plug-in и (в зависимости от браузера) расширение. Типичные симптомы:
- Сайт видит сертификат, но на этапе подписи вылетает ошибка.
- В одном браузере работает, в другом нет.
- После обновления браузера подпись “умерла”.
Что сделать аккуратно:
- Обновите CryptoPro CSP до актуальной версии (с сайта CryptoPro или вашей организации).
- Переустановите CryptoPro Browser Plug-in и расширение для вашего браузера.
- Перезапустите браузер полностью: закройте все окна, потом откройте заново.
Официальная страница производителя (для скачивания компонентов):
- CryptoPro: cryptopro.ru
Подсказка: если подпись нужна срочно, иногда проще временно попробовать другой поддерживаемый браузер, где у вас точно стоит расширение, а уже потом чинить основной.
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 и связанных компонентов.
- Если ключи на токене: вы ничего не потеряете, ключи физически на носителе.
- Если ключи “на компьютере”: перед удалением лучше сделать резервную копию контейнера. Если не уверены, не рискуйте и зовите специалиста.
Порядок действий (через интерфейс, максимально безопасно):
- Отключите токен от USB.
- Откройте Панель управления → Программы и компоненты.
- Удалите: CryptoPro CSP, CryptoPro Browser Plug-in, старые/лишние плагины, которые явно относятся к подписи (если знаете).
- Перезагрузите ПК.
- Установите заново CryptoPro CSP, затем Browser Plug-in/расширение.
- Перезагрузите ещё раз, подключите токен и проверьте подпись.
Почему две перезагрузки? У CryptoPro и драйверов носителей есть службы и фильтры. Перезагрузка реально сокращает “странные” ошибки после установки.
9) Типичные причины, почему ошибка возвращается
- Обновили браузер и расширение/плагин стало отключено или несовместимо.
- Поменяли пользователя Windows или запускаете программу “не под тем профилем”.
- Сбилось время после выключения питания/обновления/замены батарейки BIOS.
- Токен подключён через хаб и иногда “отваливается” на доли секунды.
- Сертификат истёк или выпущен новый, а вы пытаетесь подписать старым.
FAQ
Подпись работает в одной программе, но не работает на сайте.
Это почти всегда про браузер: плагин/расширение, режим подписи на сайте или блокировка со стороны защиты браузера. Начните с шага про плагины: переустановка Browser Plug-in и включение расширения.
Токен виден, сертификат есть, но в момент подписи спрашивает PIN и после него ошибка.
Проверьте, что PIN вводится в “правильное” окно (иногда всплывает за браузером). Если PIN точно верный, а ошибка остаётся, переустановите драйвер токена и CryptoPro Plug-in, затем попробуйте снова.
Можно ли обойтись без команд вообще?
Да. Самые важные шаги делаются через интерфейс: время Windows, certmgr.msc и переустановка компонентов. Команды в статье только для диагностики, если нужно понять, что видит система.