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

Если при подписи, шифровании или входе на госпорталы вылезает 0x80090008 (NTE_BAD_ALGID), это почти всегда про «не тот алгоритм/провайдер». Звучит страшно, но чаще лечится настройкой CSP и правильным выбором контейнера, а не переустановкой Windows. Ниже порядок действий, который понятен даже если вы в криптографии не живёте.
Коротко: что проверить сразу
- Ошибка появляется везде (браузер, КриптоПро, Word/Excel) или только в одном приложении.
- Сертификат точно с приватным ключом (в «Сертификаты» рядом не должно быть «Нет закрытого ключа»).
- Вы используете тот носитель, где лежит ключ: Рутокен/JaCarta/реестр/файл контейнера.
- Если сертификат «ГОСТ 2012», а CSP/плагин старый, будет конфликт алгоритмов.
1) Почему появляется NTE_BAD_ALGID
Текст ошибки расшифровывается как «неподдерживаемый идентификатор алгоритма». На практике это чаще всего одно из четырёх:
- Несовпадение ГОСТ 2001 и ГОСТ 2012. Например, ключ/сертификат под ГОСТ 2012, а приложение пытается работать через провайдера/компоненты, которые ждут ГОСТ 2001 (или наоборот).
- Выбран не тот криптопровайдер. В Windows может быть несколько: CryptoPro CSP, «КриптоПро GOST», иногда ещё сторонние провайдеры. Приложение цепляется не туда.
- Старая версия CryptoPro CSP или плагина браузера. Особенно заметно после обновлений Windows 11.
- Проблема с контейнером ключа: ключ не виден, токен не определяется, контейнер повреждён, права доступа слетели.
Наша цель: выяснить, какой у вас сертификат (2001/2012), где лежит ключ и какой провайдер используется.
2) Проверяем сертификат и наличие приватного ключа
Самый простой путь без команд:
- Нажмите Win+R → введите
certmgr.msc→ Enter. - Откройте «Личное» → «Сертификаты».
- Найдите свой сертификат (обычно по ФИО/ИНН/СНИЛС или по назначению).
- Откройте двойным кликом и проверьте:
- Есть ли строка вроде «У вас есть приватный ключ, соответствующий этому сертификату».
- Во вкладке «Состав» посмотрите поля, где фигурирует ГОСТ. Если видите упоминания 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) Рабочий порядок исправления, если вы не знаете, с чего начать
- Проверьте, что ключ доступен: токен вставлен, драйвер токена установлен, сертификат с приватным ключом.
- Проверьте алгоритм: сертификат ГОСТ 2012 должен использовать современный CSP/плагин.
- Обновите CryptoPro CSP и плагин подписи до актуальных версий (официальные источники).
- Убедитесь, что приложение выбирает правильный провайдер. Иногда в настройках подписи есть выпадающий список с провайдером.
- Проверьте, не конфликтуют ли несколько криптопровайдеров. Если ставили «всё подряд», лучше оставить один понятный набор (CSP + нужный плагин + драйвер токена).
После каждого крупного шага (обновление/удаление/установка) делайте перезагрузку и пробуйте подпись снова. Так вы точно поймёте, что именно помогло.
6) Диагностика: где посмотреть подсказки
Если ошибка упорно остаётся, полезно заглянуть в журнал событий:
- Win+R →
eventvwr.msc - «Журналы Windows» → «Приложение» и «Система».
- Ищите ошибки вокруг времени попытки подписи (часто упоминаются 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?
Да. Иногда достаточно выбрать правильный контейнер/провайдер и обновить только плагин подписи. Но если компоненты «поехали» или ставилось несколько версий, переустановка бывает быстрее.