CryptoPro CSP: ошибка 0x80090016 «Keyset does not exist» — как исправить в Windows 10/11 (2026)

Ошибка 0x80090016 с текстом Keyset does not exist обычно означает простую вещь: программа подписи не видит Ваш закрытый ключ. Иногда ключ реально «потеряли», но чаще он на месте, просто недоступен: токен не распознан, сертификат поставили без ключа, не хватает прав, или подпись запускается из-под другой учётной записи. Ниже пошагово, по-человечески и без лишней теории.
Коротко: что проверить сразу
- Если ключ на носителе: выньте и вставьте токен (Рутокен/JaCarta/eToken) в другой USB-порт, лучше сзади ПК.
- Перезагрузите компьютер. После обновлений Windows драйверы токена иногда «подвисают».
- Проверьте, что выбираете правильный сертификат (не просроченный и не «тестовый»).
- Если на ПК несколько пользователей, убедитесь, что подпись запускаете в нужной учётной записи.
1) Проверяем: ключ вообще виден в CryptoPro?
Сначала выясним, видит ли система контейнер ключей. Это самый важный шаг: если контейнер не виден, никакие «переустановки сертификата» не помогут.
- Откройте Панель управления → КриптоПро CSP (или найдите через поиск «КриптоПро»).
- Зайдите в раздел, где отображаются контейнеры или сервис работы с ключами (названия могут отличаться по версии).
- Если контейнер на токене, он должен появляться только когда токен подключён.
Если контейнер не виден: переходите к шагу про драйвер носителя. Если контейнер виден, но ошибка остаётся, часто проблема в сертификате или правах.
2) Проверяем, что сертификат именно «с ключом»
Очень частая ситуация: сертификат установлен, но без приватного ключа. Тогда подпись не получится, и вылезает 0x80090016.
- Нажмите Win+R → введите
certmgr.msc→ Enter. - Откройте: «Личное» → «Сертификаты».
- Двойной клик по Вашему сертификату и посмотрите статус: должна быть фраза, что у Вас есть соответствующий закрытый ключ.
Если такой отметки нет, значит сертификат «без ключа». Тогда нужно либо правильно привязать сертификат к контейнеру (если ключ существует), либо переустановить сертификат, который выпускал УЦ.
3) Драйвер токена: ставим только официальный
Если ключ на носителе, критично, чтобы драйвер был нормальный. «Сборники драйверов» и случайные установщики иногда ломают работу токена.
- Рутокен: официальный сайт rutoken.ru
- JaCarta: официальный сайт aladdin-rd.ru
- SafeNet/Thales eToken: поддержка на сайте производителя или через дистрибутив, который даёт УЦ.
После установки драйвера: перезагрузите ПК, подключите токен и снова проверьте, появился ли контейнер.
4) Подпись в браузере: плагин и права
Если ошибка вылезает именно на сайтах (ГИС, ЭДО, личные кабинеты), часто виноват плагин или запуск под другой учётной записью.
- Проверьте установку CryptoPro CAdES Browser Plug-in (официально): cryptopro.ru
- Закройте браузер полностью и откройте заново.
- Если работаете через удалённый рабочий стол, проверьте, что токен проброшен в сессию (иначе он «не виден» в удалённой Windows).
5) Быстрое «переподключение» сертификата и цепочки доверия
Иногда ключ есть, но Windows не доверяет цепочке, или сертификат установлен не в то хранилище. Тогда подпись тоже начинает вести себя странно.
- Импортируйте сертификат заново (файл .cer/.crt от УЦ): двойной клик → «Установить сертификат» → «Текущий пользователь» → «Личное».
- Корневые и промежуточные сертификаты (если выданы УЦ) установите в «Доверенные корневые центры» и «Промежуточные центры».
Если Вы не уверены, какие именно корневые нужны, лучше взять их на сайте Вашего удостоверяющего центра. УЦ обычно публикует комплект «корневой + промежуточные».
6) Диагностика одной командой: видит ли Windows ключевой контейнер
Это необязательный шаг, но он быстро показывает, видит ли система ключевую инфраструктуру.
PowerShell (Администратор) — выполнить целиком:
Get-ChildItem Cert:\CurrentUser\My | Select Subject, Thumbprint, NotAfter | Sort-Object NotAfter -Descending | Select -First 10
Если нужный сертификат в списке есть, но при подписи всё равно 0x80090016, чаще проблема в доступе к ключу (контейнер/права/токен/плагин), а не в самом сертификате.
7) Типичные причины 0x80090016 и быстрые решения
- Токен не распознан — переустановить официальный драйвер, сменить USB-порт, исключить USB-хаб.
- Сертификат установлен без ключа — импортировать сертификат правильно, проверить привязку к контейнеру.
- Подпись запускается под другой учёткой — работать в той же учётной записи, где установлен сертификат/ключ.
- Нет CAdES-плагина — поставить CryptoPro CAdES Browser Plug-in с официального сайта.
- Переустановка Windows — если ключ был «в системе», нужен бэкап контейнера. Если ключ на токене, достаточно драйвера + сертификата.
FAQ
У меня токен, но контейнер не виден. Это точно драйвер?
В большинстве случаев да. Ещё проверьте USB-порт и кабель, если это смарт-карта через ридер. Иногда помогает подключение в другой порт и перезагрузка.
Можно ли «восстановить ключ», если его нет?
Если приватный ключ был только на компьютере и не делался бэкап контейнера, восстановить его обычно нельзя. Тогда выпускают новый сертификат в УЦ. Если ключ на токене, он на месте, просто нужен правильный доступ.
Почему в CryptoPro сертификат виден, а на сайте не выбирается?
Чаще всего не установлен CAdES-плагин, или браузер запущен не под той учёткой. Ещё причина: сертификат не в «Личном» хранилище текущего пользователя.