CryptoPro CSP: ошибка 0x80090008 (NTE_BAD_ALGID) — неподдерживаемый алгоритм, что делать (2026)

CryptoPro CSP: ошибка 0x80090008 (NTE_BAD_ALGID) — неподдерживаемый алгоритм, что делать (2026)

Если при подписи, шифровании или входе на госпорталы вылезает 0x80090008 (NTE_BAD_ALGID), это почти всегда про «не тот алгоритм/провайдер». Звучит страшно, но чаще лечится настройкой CSP и правильным выбором контейнера, а не переустановкой Windows. Ниже порядок действий, который понятен даже если вы в криптографии не живёте.

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

  • Ошибка появляется везде (браузер, КриптоПро, Word/Excel) или только в одном приложении.
  • Сертификат точно с приватным ключом (в «Сертификаты» рядом не должно быть «Нет закрытого ключа»).
  • Вы используете тот носитель, где лежит ключ: Рутокен/JaCarta/реестр/файл контейнера.
  • Если сертификат «ГОСТ 2012», а CSP/плагин старый, будет конфликт алгоритмов.
Нужна помощь? Подключусь удалённо: проверю контейнер, провайдера, CSP/плагины, настрою подпись в браузере и приложениях, чтобы всё заработало без танцев.

1) Почему появляется NTE_BAD_ALGID

Текст ошибки расшифровывается как «неподдерживаемый идентификатор алгоритма». На практике это чаще всего одно из четырёх:

  • Несовпадение ГОСТ 2001 и ГОСТ 2012. Например, ключ/сертификат под ГОСТ 2012, а приложение пытается работать через провайдера/компоненты, которые ждут ГОСТ 2001 (или наоборот).
  • Выбран не тот криптопровайдер. В Windows может быть несколько: CryptoPro CSP, «КриптоПро GOST», иногда ещё сторонние провайдеры. Приложение цепляется не туда.
  • Старая версия CryptoPro CSP или плагина браузера. Особенно заметно после обновлений Windows 11.
  • Проблема с контейнером ключа: ключ не виден, токен не определяется, контейнер повреждён, права доступа слетели.

Наша цель: выяснить, какой у вас сертификат (2001/2012), где лежит ключ и какой провайдер используется.

2) Проверяем сертификат и наличие приватного ключа

Самый простой путь без команд:

  1. Нажмите Win+R → введите certmgr.msc → Enter.
  2. Откройте «Личное» → «Сертификаты».
  3. Найдите свой сертификат (обычно по ФИО/ИНН/СНИЛС или по назначению).
  4. Откройте двойным кликом и проверьте:
    • Есть ли строка вроде «У вас есть приватный ключ, соответствующий этому сертификату».
    • Во вкладке «Состав» посмотрите поля, где фигурирует ГОСТ. Если видите упоминания 2012 (256/512), значит нужен нормальный современный стек.

Важно: если сертификат есть, а приватного ключа нет, исправление NTE_BAD_ALGID бессмысленно. Сначала нужно восстановить доступ к контейнеру (токен/реестр/backup контейнера).

3) Проверяем CryptoPro CSP: провайдер и контейнер

Откройте «КриптоПро CSP»:

  • Win → начните вводить КриптоПро CSP → откройте.
  • Перейдите на вкладку «Сервис» → «Просмотреть сертификаты в контейнере» (формулировки могут чуть отличаться).
  • Нажмите «Обзор» и выберите контейнер с ключом. Если токен вставлен, он должен появиться в списке.

Если контейнер выбирается, но тест/подпись всё равно падают с 0x80090008, часто помогает переключение на корректный провайдер (там же, в настройках выбора контейнера) и обновление CSP.

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

certutil -store my
certutil -scinfo

Первая команда показывает сертификаты в «Личном». Вторая проверяет смарт-карты/токены и иногда сразу подсвечивает, что носитель не читается.

4) Обновляем CryptoPro CSP и компоненты подписи

Если сертификат под ГОСТ 2012, а CSP/плагин старые, то именно здесь чаще всего и зарыта собака.

  • Скачивайте CryptoPro CSP и плагины только с официального сайта CryptoPro или сайта вашего удостоверяющего центра.
  • Если у вас подпись в браузере: проверьте, установлен ли актуальный «CryptoPro CAdES Browser Plug-in» (и что он подходит под ваш браузер).
  • После обновления перезагрузите ПК. Да, обязательно.

PowerShell (Администратор) — выполнить по одной, чтобы увидеть версию CSP в системе:

Get-ItemProperty "HKLM:\SOFTWARE\Crypto Pro\CSP" -ErrorAction SilentlyContinue | Select-Object Version, InstallDir
Get-ItemProperty "HKLM:\SOFTWARE\WOW6432Node\Crypto Pro\CSP" -ErrorAction SilentlyContinue | Select-Object Version, InstallDir

Если первая строка пустая, а вторая есть, значит стоит только 32-битная ветка (или наоборот). Иногда приложения требуют конкретную разрядность компонентов.

5) Рабочий порядок исправления, если вы не знаете, с чего начать

  1. Проверьте, что ключ доступен: токен вставлен, драйвер токена установлен, сертификат с приватным ключом.
  2. Проверьте алгоритм: сертификат ГОСТ 2012 должен использовать современный CSP/плагин.
  3. Обновите CryptoPro CSP и плагин подписи до актуальных версий (официальные источники).
  4. Убедитесь, что приложение выбирает правильный провайдер. Иногда в настройках подписи есть выпадающий список с провайдером.
  5. Проверьте, не конфликтуют ли несколько криптопровайдеров. Если ставили «всё подряд», лучше оставить один понятный набор (CSP + нужный плагин + драйвер токена).

После каждого крупного шага (обновление/удаление/установка) делайте перезагрузку и пробуйте подпись снова. Так вы точно поймёте, что именно помогло.

6) Диагностика: где посмотреть подсказки

Если ошибка упорно остаётся, полезно заглянуть в журнал событий:

  1. Win+Reventvwr.msc
  2. «Журналы Windows» → «Приложение» и «Система».
  3. Ищите ошибки вокруг времени попытки подписи (часто упоминаются CryptoPro, CAdES, CSP, SmartCard).

PowerShell (Администратор) — выполнить целиком (одним вставлением), чтобы быстро вытащить последние записи:

$since = (Get-Date).AddDays(-2)
Get-WinEvent -FilterHashtable @{
  LogName = @('Application','System');
  StartTime = $since
} | Where-Object {
  $_.Message -match 'Crypto|CSP|CAdES|SmartCard|Рутокен|JaCarta|GOST'
} | Select-Object TimeCreated, Id, ProviderName, LevelDisplayName, Message | Format-Table -AutoSize

Эти строки иногда прямо говорят: «контейнер не найден», «провайдер не поддерживает алгоритм», «не удаётся открыть ключ».

7) Частые ошибки, которые мешают и путают

  • Подписываете не тем сертификатом. На ПК может быть несколько сертификатов, и приложение выбирает «похожий» автоматически.
  • Ключ на токене, а токен не определяется. В диспетчере устройств должен быть виден смарт-кард ридер/USB-устройство токена без жёлтых значков.
  • Смешали 32-бит и 64-бит компоненты. Браузер/программа могут быть одной разрядности, а плагин другой.
  • Поставили «дополнительные криптопровайдеры» и теперь приложение цепляется к ним. Лучше держать минимально необходимый набор.

FAQ

Ошибка 0x80090008 вылезает только на одном сайте, а в другом всё нормально.

Часто у сайтов разные требования к алгоритму и компонентам подписи. Проверьте, какой браузер используете, какой плагин подписи стоит, и не требует ли сайт отдельный модуль/настройку (иногда важна разрядность). Начните с обновления плагина и проверки сертификата.

После обновления Windows 11 подпись сломалась, раньше работало.

Это типичный сценарий. Windows обновляется, а CryptoPro/плагин остаются старыми. Обновите CSP и плагин с официальных источников, перезагрузите ПК, проверьте, что токен и драйверы на месте.

Можно ли исправить без переустановки CryptoPro CSP?

Да. Иногда достаточно выбрать правильный контейнер/провайдер и обновить только плагин подписи. Но если компоненты «поехали» или ставилось несколько версий, переустановка бывает быстрее.

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