Перед началом
- Сертификат нужного владельца
- Исходный носитель или место хранения ключа
- Рабочий пользователь Windows
Требования и подробное описание
О задаче и границах инструкции
«Набор ключей не существует» не доказывает удаление ключа. Контейнер может отсутствовать, быть отключён или недоступен вызывающей учётной записи. Проверьте исходный носитель, тест по выбранному сертификату и связь сертификата с контейнером. CER не заменяет закрытый ключ.
Ошибка 0x80090016 / NTE_BAD_KEYSET при использовании локального сертификата в Windows и КриптоПро. Инструкция касается уже выпущенного ключа пользователя. Она не описывает восстановление УЦ, TPM, Windows Hello или серверных служб, где такой же код встречается в другом контексте.
Что подготовить перед началом
- Полное сообщение с 0x80090016 и действие, при котором оно появляется.
- Сведения, где создавался исходный ключ: токен, локальный контейнер или иное место.
- Носитель и его модель; известный вам актуальный PIN без повторного угадывания.
- Рабочая учётная запись Windows и версии CSP, браузера и плагина.
- Издатель, срок и отпечаток выбранного сертификата, особенно после перевыпуска.
Пошаговая инструкция
Сверьте ошибку и сертификат
- Сохраните полный текст 0x80090016 и действие, при котором он появился.
- Сверьте владельца, срок и серийный номер выбранного сертификата.
Результат: Проверяется именно нужный сертификат.
Подробности и другие варианты
Подтвердите контекст кода
В CryptoAPI NTE_BAD_KEYSET связан в том числе с отсутствием контейнера или доступа к нему. Этот маршрут не переносится автоматически на ошибку службы, TPM или другой программы.
- Сохраните весь текст сообщения 0x80090016.
- Запишите программу и действие, на котором оно возникло.
- Проверьте, относится ли отказ к пользовательской электронной подписи.
Результат: Подтверждён сбой обращения к существующему ключу подписи.
Если не получилось
Если ошибка возникает вне этого сценария, передайте её владельцу соответствующего продукта с полным контекстом.
Сверьте выбранный сертификат
До определения используемой записи сертификаты не удаляют. Старый сертификат может оставаться видимым после подключения нового носителя.
- Откройте сведения выбранного сертификата.
- Сверьте владельца, издателя и срок.
- Сравните отпечаток с рабочей записью.
- После перевыпуска уточните, соответствует ли сертификат подключённому ключу.
Результат: Выбран сертификат, которому соответствует ожидаемый исходный ключ.
Если не получилось
Если выбран старый, переключитесь на нужный и повторите только безопасный тест.
Найдите исходный носитель
- Выясните, где создавался ключ: на токене, в реестре или другом хранилище.
- Подключите исходный носитель и проверьте его в программе производителя.
Результат: Место хранения известно; носитель определяется.
0x80090016: где отсутствует доступ
Что показывает схема
- Есть только CERСертификат виден, но это не подтверждает наличие соответствующего ключа.
- Ключ существуетПроверьте носитель, учётную запись и привязку сертификата к контейнеру.
- Ключ потерянНовый пустой контейнер не восстановит прежний ключ. Обратитесь в выдавший УЦ.
Подробности и другие варианты
Найдите исходное место хранения
Любой другой USB-носитель не восстанавливает ключ. Не создавайте новый пустой контейнер с похожим именем.
- Уточните, где ключ был создан и использовался ранее.
- Найдите конкретный исходный токен или профиль прежнего компьютера.
- Подключите именно этот носитель, если ключ хранится на нём.
Результат: Известно, где должен находиться именно соответствующий ключ.
Если не получилось
Если исходный ключ потерян, остановите локальные переустановки и уточняйте у УЦ порядок действий и возможный перевыпуск.
Проверьте обнаружение носителя
Наличие USB-устройства и доступность нужного контейнера — разные проверки.
- Откройте штатную программу производителя токена.
- Для Рутокен проверьте «Администрирование» → «Подключенные Рутокены» в ПУР.
- Если устройство отсутствует, сначала проверьте подключение и драйвер.
Результат: Нужное устройство доступно системе.
Если не получилось
Если устройство видно, но ошибка остаётся, переходите к контейнеру; это ещё не подтверждение доступности ключа.
Проверьте контейнер и привязку
- Под рабочим пользователем проверьте тот же контейнер средствами CSP.
- Если ключ доступен, установите связанный личный сертификат из контейнера по руководству КриптоПро.
Важно. CER и новый пустой контейнер не восстанавливают потерянный закрытый ключ.
Результат: Сертификат связан с существующим доступным ключом.

Ещё изображения и схема


Подробности и другие варианты
Протестируйте тот же ключ в CSP
Смена пользователя или запуск другого профиля во время проверки может скрыть исходную причину.
- Откройте «КриптоПро CSP» под обычным рабочим пользователем.
- Выберите «Сервис» → «Протестировать» → «По сертификату».
- Укажите ту же запись, которая вызывает ошибку в браузере.
- Сохраните результат целиком.
- Сопоставьте доступный контейнер в «Инструментах КриптоПро».
Результат: Понятно, повторяется ли ошибка вне браузера и к какому контейнеру обращается сертификат.
Если не получилось
Если тест повторяет 0x80090016, сначала решайте доступ к контейнеру; браузерная переустановка не является следующим обоснованным шагом.
Восстановите привязку к доступному контейнеру
Если контейнер недоступен, возвращайтесь к проверке носителя и прав; переустановка CER проблему ключа не исправит. Неактивная кнопка установки из контейнера означает отсутствие сертификата внутри него. Хранилище, отличное от «Личное», означает, что подходящий контейнер не был найден.
- Продолжайте привязку только после успешного локального теста исходного контейнера.
- Откройте «Инструменты КриптоПро» → «Контейнеры».
- Выберите контейнер нужного владельца.
- Нажмите «Установить сертификат», если он записан в контейнер.
- Если сертификат выдан отдельным CER, откройте «Сертификаты» → «Установить сертификаты».
- Выберите выданный УЦ файл CER.
- Откройте уведомление об установке.
- Проверьте итоговое хранилище: «Личное».
Результат: Сертификат установлен в Личное и связан с доступным исходным контейнером. Следующая проверка — пробная подпись в том же пользовательском сеансе.
Если не получилось
Если контейнер не виден либо его локальный тест не проходит, сначала устраните проблему носителя, драйвера или доступа. Повторный импорт CER не создаёт отсутствующий закрытый ключ.
Повторите тест и вход
- Проверьте подпись несекретного текста на официальной демостранице.
- Повторите исходное действие в кабинете с тем же сертификатом; сохраните остаточную ошибку.
Результат: Сравнены локальный тест и результат рабочего сервиса.
Подробности и другие варианты
Повторите локальный и браузерный тест
Локальный и браузерный тесты сохраняют раздельно: успех одного не гарантирует успех другого.
- Повторите локальную проверку ключа в CSP.
- После успешного результата перезапустите браузер.
- Создайте контрольную подпись тем же сертификатом на официальной странице.
- Запишите первый этап, на котором теперь возникает отказ.
Результат: Доступ к ключу подтверждён вне сайта и в браузерной операции.
Если не получилось
Если CSP работает, а браузер нет, проверяйте плагин, профиль и выбор сертификата; приложите разницу результатов.
Проверьте кабинет и сохраните доказательства
До окончания разбора не удаляйте контейнеры, не форматируйте носитель и не рассылайте ключевые файлы.
- При успешной контрольной подписи повторите исходное разрешённое действие в кабинете.
- Если ошибка осталась только в сервисе, сохраните его точный сценарий.
- Передайте оператору результаты локальной и браузерной проверок.
Результат: Локальная доступность ключа отделена от отказа конкретного сервиса.
Если не получилось
Если ключ действительно утрачен, восстановление из CER невозможно; дальнейшие действия согласуются с УЦ и ответственным за ключи.
Ошибки и решения
Откройте свой симптом и повторяйте проверку после каждого изменения.
Сертификат виден, 0x80090016 после выбора
- Проверьте
- Подключён ли его исходный носитель и проходит ли тест по сертификату.
- Сделайте
- Проверьте ожидаемый контейнер, а не только список сертификатов.
- Результат
- Наличие открытого сертификата отделено от доступа к ключу.
Ошибка после переноса на новый ПК
- Проверьте
- Какие данные переносились: CER или также разрешённый ключевой носитель.
- Сделайте
- Подключите исходный носитель и установите сертификат по официальной инструкции.
- Результат
- Новый ПК получает доступ к существующему ключу без его передачи третьим лицам.
Под администратором работает, у сотрудника нет
- Проверьте
- Одинаковы ли сертификат, контейнер и рабочая учётная запись.
- Сделайте
- Передайте администратору проверку контекста и минимально необходимых прав.
- Результат
- Работа проверяется под обычным пользователем.
Устройство видно, тест контейнера не проходит
- Проверьте
- Модель, CSP, точный результат теста и состояние PIN.
- Сделайте
- Сохраните результаты для поддержки производителя; не переинициализируйте устройство.
- Результат
- Ошибка ключа диагностируется без уничтожения объектов.
После перевыпуска появляется прежний код
- Проверьте
- Не выбран ли старый сертификат с другим контейнером.
- Сделайте
- Сверьте отпечаток и срок нового сертификата, повторите безопасный тест.
- Результат
- Используется правильная новая связка ключа и сертификата.
Как понять, что настройка завершена
- Носитель и контейнер найдены в ожидаемом месте.
- Тест по выбранному сертификату проходит под рабочим пользователем.
- Контрольная браузерная подпись создаётся тем же сертификатом.
- Исходный кабинет проверен отдельно; исходные ключи сохранены.
Частые вопросы
0x80090016 всегда означает, что ключ удалён?+
Нет. Важны доступность контейнера и права вызывающей учётной записи. Удаление — одна из проверяемых ситуаций, а не вывод по одному номеру.
Может сертификат оставаться после отключения токена?+
Открытая запись может оставаться в хранилище. Для операции подписи всё равно нужен соответствующий доступный закрытый ключ.
Повторный импорт CER восстановит ключ?+
Нет. Он может помочь привязать открытый сертификат к существующему доступному ключу, но не создаёт прежний закрытый ключ заново.
Можно создать контейнер с прежним именем?+
Это не возвращает потерянную ключевую пару. Для уже выданного сертификата нужен соответствующий исходный ключ.
Нужно ли запускать браузер администратором?+
Разница контекстов полезна как наблюдение для администратора. Окончательный результат должен быть проверен под обычным рабочим пользователем.
Надо ли форматировать токен для исправления ошибки?+
Нет. Сначала проверьте наличие устройства, контейнера и доступ. Форматирование может уничтожить ключи и лишить возможности дальнейшего разбора.
Какие сведения подготовить для поддержки
- Полный код, текст, приложение и действие до ошибки.
- Модель носителя, версия CSP и результат теста по сертификату.
- Тип хранения контейнера и изменения ПК/учётной записи без раскрытия файлов ключа.
- Отпечаток сертификата и сравнение обычного пользователя с другим контекстом; без PIN и PFX.
Источники и способ проверки
Материал подготовлен по документации производителей. Установка и подпись на вашем рабочем месте проверяются отдельно; номера версий на снимках относятся к иллюстрируемому примеру.
- Microsoft: причины NTE_BAD_KEYSET
Причины открытия контейнера зависят от контекста и доступа.
- Ответ сотрудника КриптоПро по 0x80090016
Проверка через CSP и поиск исходного носителя.
- КриптоПро: установка и привязка сертификата
Действия только при существующем соответствующем контейнере.
- Проверка устройства Рутокен
Отдельная проверка обнаружения устройства.
- КриптоПро: тест создания подписи CAdES-BES
Проверка интеграции с плагином и контрольной подписи на тестовых данных; не проверяет доступ в кабинет или ГОСТ TLS.
Проверены официальные материалы производителей и операторов на указанную дату. Диагностический порядок составлен редакцией; проверка на реальном носителе и в рабочем кабинете не проводилась.
Связанные задачи
Ваш вопрос или комментарийБез регистрации · имя можно не указывать
Комментарии к инструкции
Поделитесь результатом или уточните непонятный шаг.
Загружаем сообщения…
