CryptoPro CSP: ошибка 0x80090010 (NTE_PERM) — отказано в доступе к ключевому контейнеру в Windows 10/11 (2026)

Если при подписи или входе на сайт с ЭЦП вы видите 0x80090010 (NTE_PERM), это почти всегда не «сломанная подпись», а нет доступа к ключевому контейнеру. Ниже разберёмся, где лежит контейнер (профиль, реестр или токен), как быстро проверить его из интерфейса CryptoPro и что поправить, чтобы подпись снова работала.
Коротко: что проверить сразу
- Вы вошли в Windows под тем же пользователем, под которым контейнер создавали или импортировали.
- Если ключ на токене (Рутокен/JaCarta/eToken), токен вставлен напрямую в USB, PIN вводится, утилита производителя видит устройство.
- CryptoPro CSP открывается без ошибок (Пуск → КриптоПро CSP).
- Ошибка появляется везде или только в браузере. Это поможет понять, где копать дальше.
1) Понимаем, где лежит ключевой контейнер
Одна и та же ЭЦП может быть привязана к ключу в разных местах. Для NTE_PERM это критично, потому что права выдаются по-разному.
- Контейнер на токене (Рутокен/JaCarta/eToken): ключ в устройстве. Проблемы чаще всего в драйверах, PIN, питании USB или правах.
- Контейнер в профиле/реестре: ключ в системе и часто «завязан» на конкретного пользователя Windows. На другом пользователе будет отказ.
Самый простой способ понять, что у вас: посмотреть контейнеры в CryptoPro (следующий шаг). По названию обычно видно, токен это или «локальный» контейнер.
2) Проверяем контейнер через интерфейс CryptoPro
Нам нужно выяснить: контейнер вообще открывается или CryptoPro сразу ругается правами.
- Пуск → откройте КриптоПро CSP.
- Вкладка Сервис.
- Нажмите Просмотреть сертификаты в контейнере.
- Выберите контейнер из списка → ОК.
Если ошибка 0x80090010 появляется прямо здесь, значит проблема точно в доступе к контейнеру, а не в конкретном сайте.
3) Выдаём права на контейнер
NTE_PERM переводится как «нет разрешения». И да, даже если вы администратор, это не гарантирует доступ: у контейнера может быть свой список прав.
Что делаем без терминала:
- Откройте КриптоПро CSP → вкладка Сервис.
- Найдите пункт управления контейнерами или доступом (названия зависят от версии, но смысл один: «контейнеры/права»).
- Выберите нужный контейнер и добавьте текущего пользователя в доступ.
Если сомневаетесь, что именно ваш контейнер: ориентируйтесь по имени, которое видите в «Просмотреть сертификаты в контейнере». Обычно там один-два варианта.
4) Если ключ на Рутокене, JaCarta или eToken
Здесь два шага: (1) токен видит Windows, (2) токен видит CryptoPro.
- Сначала откройте официальную утилиту токена и убедитесь, что устройство распознано.
- Проверьте, что PIN вводится и токен не заблокирован.
- Поставьте свежий драйвер токена с официального сайта производителя, потом перезагрузите ПК.
Официальные страницы загрузок:
Практика: если используете ПК, вставляйте токен в задний USB-порт, без удлинителей и хабов. На ноутбуках часто помогает другой порт, особенно если рядом стоят энергоёмкие устройства.
5) Точная проверка через csptest
Если хочется «железобетонно» подтвердить причину, csptest показывает контейнеры и ошибку открытия.
CMD (Администратор) — выполнять команды по одной:
where csptest
csptest -keyset -enum_cont -fqcn
Вы увидите список контейнеров. Дальше попробуем открыть нужный контейнер.
CMD (Администратор) — выполнить одну команду (вместо CONTAINER_NAME подставьте имя из списка):
csptest -keyset -verifycontext -cont "CONTAINER_NAME"
Если тут снова 0x80090010, то это права/доступ. Если csptest проходит, а проблема только в одной программе, значит виновата именно эта программа или браузерный компонент.
6) Типовые причины, которые чаще всего дают NTE_PERM
- Контейнер создан в другом профиле. Решение: войти под правильным пользователем или перенести контейнер и сертификат корректно.
- CryptoPro ставили «под админом», а работать пытаются обычным пользователем. Решение: выдать права на контейнер текущему пользователю.
- Слетели/устарели драйверы токена. Решение: обновить драйверы производителя, затем перезагрузка.
- Сертификат установлен, но приватного ключа нет. Решение: установить сертификат из контейнера или заново импортировать связку правильно.
- Экономия энергии USB отключает токен. Решение: в диспетчере устройств убрать галочку отключения питания у USB-концентраторов.
- Повреждён профиль пользователя. Решение: проверить в новом профиле Windows и затем переносить ключи аккуратно.
7) Если ошибка только в браузере
Бывает так: в CryptoPro контейнер открывается, а на сайте подпись не работает и вылетает 0x80090010. Тогда проблема обычно в плагине/расширении или в профиле браузера.
- Обновите CryptoPro CSP и компоненты подписи для браузера (CAdES/плагин), перезапустите браузер.
- Проверьте, что расширение подписи включено в браузере.
- Для теста попробуйте другой браузер (Edge ↔ Chrome). Если в другом заработало, значит контейнер в порядке.
FAQ
Я администратор, почему всё равно «нет доступа»?
Потому что доступ к контейнеру выдаётся конкретному пользователю, а не «всем админам». Добавьте ваш профиль в права контейнера или используйте профиль, где контейнер создавался.
Можно ли просто переустановить CryptoPro и забыть?
Иногда помогает, но не всегда. Если причина в правах на контейнер или в драйвере токена, одна переустановка CSP без исправления первопричины даст тот же результат.
После обновления Windows подпись сломалась. Это из-за обновления?
Часто да: обновления меняют драйверы и компоненты браузера. Обычно лечится обновлением драйвера токена и проверкой прав на контейнер.