CryptoPro CSP: ошибка 0x8009001B (NTE_BAD_KEY) — ключ не подходит или повреждён (2026)

Если при подписи или входе на сайт выскакивает 0x8009001B (NTE_BAD_KEY), это почти всегда история про ключевой контейнер: токен виден, но ключ «не подходит», «повреждён» или не может быть использован этим приложением. Ниже план, который обычно возвращает подпись за 15–40 минут, без плясок и без потери сертификата.
Коротко: что проверить сразу
- Носитель подключён в USB напрямую (не в монитор/хаб без питания). Индикатор токена (если есть) реагирует.
- Время и дата Windows правильные (ошибка бывает из-за рассинхрона часов).
- Вы выбираете нужный сертификат (часто их несколько: тестовый, старый, для другого ИНН).
- CryptoPro CSP и плагин для браузера не «очень древние». Если CSP ставился «когда-то», лучше обновить.
0) Как проявляется ошибка 0x8009001B
- «Не удаётся создать подпись», «Ключ недействителен», «Неверный ключ» или просто код 0x8009001B.
- На одном ПК подпись работает, на другом нет.
- Токен определяется, но сайт не видит сертификат или видит, но подпись падает.
Важно: 0x8009001B не всегда означает, что ключ «умер». Чаще виноваты драйвер носителя, кеши сертификатов, неверный выбор контейнера, старый плагин или отсутствие цепочки доверия.
1) Проверяем, что токен и контейнер реально читаются
Сначала убедимся, что Windows видит носитель и CryptoPro может открыть контейнер.
- Откройте Панель управления → КриптоПро CSP.
- Перейдите в раздел Сервис → Просмотреть сертификаты в контейнере.
- Нажмите Обзор и выберите контейнер с токена (обычно в названии есть «Rutoken», «JaCarta», «HDIMAGE», «AKS», «eToken» и т.п.).
- Нажмите ОК и проверьте: сертификат показывается, статус нормальный, есть кнопка «Свойства».
Если контейнер не открывается или не появляется в списке, почти всегда помогает порядок: драйвер токена → перезагрузка → CryptoPro CSP → плагин CAdES.
2) Проверяем сертификат: есть ли приватный ключ и всё ли с цепочкой
Сертификат может быть установлен, но без привязки к ключу или без доверенной цепочки. Тогда приложение «видит» его, но подписать не может.
- В CryptoPro CSP откройте: Сервис → Просмотреть сертификаты в контейнере и зайдите в «Свойства».
- В свойствах должен быть признак, что сертификат связан с ключом (обычно это видно по тому, что он открыт из контейнера, а не просто из хранилища).
- Проверьте вкладку с путём сертификации: не должно быть красных ошибок.
Если цепочка ругается на доверие, обычно достаточно установить корневые/промежуточные сертификаты вашего УЦ (скачивайте только с официального сайта УЦ) и обновить корневые Windows через стандартные обновления.
3) Чистим типовые «залипания»: кеши, старые сертификаты, конфликтующие записи
У неопытных пользователей часто стоит несколько одинаковых сертификатов: один из контейнера, другой импортирован «куда попало». Из-за этого сайт выбирает не тот и падает.
- Откройте certmgr.msc (Win+R → вставить
certmgr.msc→ Enter). - Зайдите в Личное → Сертификаты и удалите явные дубликаты старых/просроченных (аккуратно: если не уверены, лучше не удалять).
- Закройте браузер полностью и запустите заново.
PowerShell (Администратор) — выполнить команды по одной:
taskkill /im chrome.exe /f
taskkill /im msedge.exe /f
taskkill /im iexplore.exe /f
taskkill /im javaw.exe /f
Команды выше просто закрывают процессы браузеров, чтобы они не держали старые модули. Если пользуетесь только одним браузером, лишнее можно не трогать.
4) Обновляем CryptoPro CSP и плагин CAdES без сюрпризов
Старый CSP или плагин часто даёт странные ошибки именно на этапе подписи. Правильная безопасная последовательность такая:
- Скачайте установщики с официальных сайтов: CryptoPro CSP и CryptoPro CAdES Browser Plug-in.
- Переустановку делайте с перезагрузкой после каждого ключевого шага.
- Если есть токен-драйвер (Рутокен/JaCarta), обновите и его, тоже с перезагрузкой.
Подсказка: сертификат на токене при переустановке CSP не пропадёт. Опасно только удалять контейнер или выполнять «инициализацию» токена в утилитах. Это здесь не нужно.
5) Проверяем время, лицензии и права
Мелочь, но она стреляет: если время уехало даже на несколько минут, часть операций подписи и проверки цепочки может ломаться.
- Откройте Параметры → Время и язык → включите «Устанавливать время автоматически».
- Нажмите «Синхронизировать сейчас».
- В CryptoPro CSP откройте раздел про лицензию и убедитесь, что CSP активирован (или стоит действующая лицензия/триал, если это допустимо в вашей ситуации).
Если подпись работает только «от имени администратора», а обычно нет, значит приложению/браузеру не хватает прав на доступ к ключу. В этом случае чаще помогает обновление компонентов и корректная установка токен-драйвера, а не постоянный запуск админом.
6) Быстрый тест подписи вне сайта
Чтобы понять, где проблема, разделяем «токен/ключ» и «сайт/браузер».
- Если в CryptoPro CSP контейнер открывается и сертификат виден, ключ жив.
- Если ошибка появляется только на сайте, виноваты плагин, браузер, выбор сертификата или политика безопасности.
CMD (Администратор) — выполнить команды по одной:
where csptest
where cryptcp
certutil -store -user my
Команда certutil -store -user my покажет список сертификатов в профиле. Если нужного нет или он без ключа, возвращаемся к шагам про контейнер и установку.
7) Частые причины и быстрые решения
- Токен подключён через «плохой» хаб — переподключите напрямую в USB на системном блоке/ноутбуке.
- Установлены два разных CSP/плагина — удалите лишнее (часто мешают старые версии), поставьте актуальное.
- Выбран не тот сертификат — удалите просроченные/дубликаты, оставьте один актуальный.
- Нет доверенной цепочки — поставьте корневые/промежуточные УЦ с официального сайта.
- Слетело время — включите авто-синхронизацию и повторите подпись.
FAQ
Я боюсь «сломать» токен. Что точно нельзя делать?
Не делайте «инициализацию», «форматирование», «сброс PIN» без понимания последствий. Для ошибки 0x8009001B это почти никогда не нужно. Мы работаем с драйверами, CSP, плагином и сертификатами в Windows.
Сайт просит выбрать сертификат, но мой не появляется.
Сначала проверьте, что сертификат виден через «Просмотреть сертификаты в контейнере» в CryptoPro CSP. Если там он есть, но в браузере нет, переустановите CAdES-плагин, перезапустите браузер и убедитесь, что сертификат установлен в «Личное» текущего пользователя.
После обновления всё равно ошибка. Что дальше?
Проверьте на другом USB-порту, затем на другом ПК. Если ошибка повторяется на всех устройствах и контейнер не читается, возможна проблема с самим носителем или контейнером. Тогда лучше обращаться в УЦ или к специалисту, чтобы не потерять ключ.