Эцп ошибка обращения к контейнеру закрытого ключа

Обновлено: 04.07.2024

Криптопровайдер КриптоПро на сегодняшний день является, пожалуй, самым популярным на рынке, по крайней мере в России. Я хочу рассказать, как быстро и удобно перенести большое количество контейнеров закрытых ключей CryptoPro и сертификатов к ним. Существует штатный механизм в самой программе, работает в ручном режиме и не подходит, когда надо перенести большое количество.

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на . Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

Введение

Мне постоянно приходится иметь дело с сертификатами, токенами, закрытыми ключами, криптопровайдерами и прочим. Сейчас все завязано на это - банкинг, сдача отчетности в разные гос органы, обращения опять же в эти органы, в том числе и физ лиц. В общем, с этой темой рано или поздно придется познакомиться многим. Для того, чтобы перенести все это хозяйство с одного компьютера на другой, иногда приходится прилично повозиться, особенно тем, кто не в теме. Перенести закрытые ключи и сертификаты КриптоПро на другой компьютер можно двумя способами:

  1. Перенести или скопировать контейнер закрытого ключа через стандартную оснастку CryptoPro в панели управления. Это самый простой и быстрый способ, если у вас не много сертификатов и ключей. Если же их несколько десятков, а это не такая уж и редкость, то такой путь вам не подходит.
  2. Скопировать сертификаты и ключи непосредственно через перенос самих исходных файлов и данных, где все это хранится. Объем работы одинаков и для 5 и для 50-ти сертификатов, но требуется больше усилий и знаний.

Я опишу оба этих способа, но подробно остановлюсь именно на втором способе. В некоторых ситуациях он является единственно возможным.

Важное замечание. Я буду переносить контейнеры закрытого ключа, которые хранятся в реестре. Если вы храните их только на токене, то переносить контейнеры вам не надо, только сертификаты.

Копирование закрытого ключа через оснастку КриптоПро

Для того, чтобы скопировать контейнер для хранения закрытого ключа сертификата штатным средством, необходимо в Панели управления открыть оснастку CryptoPro, перейти в раздел Сервис и нажать Скопировать.

Копирование закрытого ключа сертификата через оснастку КриптоПро

Далее вы выбираете текущий контейнер, который хотите скопировать. Это может быть либо токен, либо реестр компьютера. Затем новое имя и новое расположение контейнера. Опять же, это может быть как реестр, так и другой токен.

Выбор контейнер для экспорта

Ошибка копирования контейнера

Но тут есть важный нюанс. Если во время создания закрытого ключа он не был помечен как экспортируемый, скопировать его не получится. У вас будет ошибка:

Ошибка копирования контейнера

Ошибка копирования контейнера. У вас нет разрешений на экспорт ключа, потому что при создании ключа не был установлен соответствующий флаг. Ошибка 0x8009000B (-2146893813) Ключ не может быть использован в указанном состоянии. Либо вы просто не сможете его выбрать для копирования, если у вас последняя версия CryptoPro. Он будет неактивен:

Неэкспортируемый контейнер

Если получили такую ошибку, то для вас этот способ переноса не подходит. Можно сразу переходить к следующему. Отдельно расскажу, как скопировать сертификат и закрытый ключ к нему в файл, чтобы перенести на другой компьютер без использования токена. Делаем это там же на вкладке Сервис в оснастке CryptoPro. Нажимаем Посмотреть сертификаты в контейнере.

Посмотреть список сертификатов в системе

Выбираем необходимый сертификат и нажимаем Посмотреть свойства сертификата.

Выбор сертификата

Далее переходим на вкладку Состав в информации о сертификате и нажимаем Копировать в файл.

Сохранение сертификата КриптоПро в файл

Если у вас после слов "Экспортировать закрытый ключ вместе с сертификатом" нет возможности выбрать ответ "Да, экспортировать закрытый ключ", значит он не помечен как экспортируемый и перенести его таким способом не получится. Можно сразу переходить к другому способу, который описан ниже.

Невозможно экспортировать закрытый ключ

Если же такая возможность есть, то выбирайте именно этот пункт и жмите Далее. В следующем меню ставьте все галочки, кроме удаления. Так вам будет удобнее и проще в будущем, если вдруг опять понадобится копировать ключи уже из нового места.

Формат экспортируемого ключа

Укажите какой-нибудь пароль и запомните его! Без пароля продолжить нельзя. В завершении укажите имя файла, куда вы хотите сохранить закрытый ключ. Теперь вам нужно скопировать сам сертификат. Только что мы копировали закрытый ключ для него. Не путайте эти понятия, это разные вещи. Опять выбираете этот же сертификат в списке из оснастки Crypto Pro, жмёте Копировать в файл, экспортировать БЕЗ закрытого ключа. И выбираете файл формата .CER.

Перенос сертификата

Сохраните сертификат для удобства в ту же папку, куда сохранили закрытый ключ от него. В итоге у вас должны получиться 2 файла с расширениями:

Вам достаточно перенести эти 2 файла на другой компьютер и кликнуть по каждому 2 раза мышкой. Откроется мастер по установке сертификатов. Вам нужно будет выбрать все параметры по умолчанию и понажимать Далее. Сертификат и контейнер закрытого ключа к нему будут перенесены на другой компьютер. Я описал первый способ переноса в ручном режиме. Им можно воспользоваться, если у вас немного сертификатов и ключей. Если их много и руками по одному переносить долго, то переходим ко второму способу.

Массовый перенос ключей и сертификатов CryptoPro с компьютера на компьютер

В интернете достаточно легко находится способ переноса контейнеров закрытых ключей КриптоПро через копирование нужной ветки реестра, где это все хранится. Я воспользуюсь именно этим способом. А вот с массовым переносом самих сертификатов у меня возникли затруднения и я не сразу нашел рабочий способ. Расскажу о нем тоже. Для дальнейшей работы нам надо узнать SID текущего пользователя, у которого мы будем копировать или переносить сертификаты с ключами. Для этого в командной строке выполните команду:

Как узнать SID пользователя

В данном случай user - имя учетной записи, для которой узнаем SID. Далее скопируем контейнеры закрытых ключей в файл. Для этого на компьютере открываем редактор реестра (regedit.exe) и переходим в ветку:

где S-1-5-21-4126888996-1677807805-1843639151-1000 - SID пользователя, у которого копируем сертификаты. Выбираем папку Keys и экспортируем ее. Этот путь актуален для 64-х битных систем - Windows 7, 8, 10. В 32-х битных путь может быть немного другой. Я специально не проверял, но поиском по реестру вы при желании найдете его.

Массовый перенос закрытых ключей сертификатов с компьютера на компьютер

Сохраняем ветку реестра в файл. В ней хранятся закрытые ключи. Теперь нам нужно скопировать сразу все сертификаты. В Windows 7, 8 и 10 они живут в директории - C:\Users\user\AppData\Roaming\Microsoft\SystemCertificates\My. Сохраняйте эту директорию. Для переноса ключей и сертификатов нам надо скопировать на другой компьютер сохраненную ветку реестра и директорию с сертификатами My.

После того, как перенесли файлы со старого компьютера на новый, открываем файл с веткой реестра в текстовом редакторе и меняем там SID пользователя со старого компьютера на SID пользователя нового компьютера. Можно прям в блокноте это сделать поиском с заменой.

Замена SID пользователя

После этого запускаем .reg файл и вносим данные из файла в реестр. Теперь скопируйте папку My с сертификатами в то же место в профиле нового пользователя. На этом перенос сертификатов и контейнеров закрытых ключей КриптоПро завершен. Можно проверять работу. Я не раз пользовался этим методом, на текущий момент он 100% рабочий. Написал статью, чтобы помочь остальным, так как сам не видел в интернете подробной и понятной с первого раза статьи на эту тему. Надеюсь, моя таковой получилась.

КриптоПро CSP ошибка 0x80090010 Отказано в доступе

Иногда после переноса контейнеров закрытых ключей через экспорт - импорт ветки реестра с ключами можно увидеть ошибку доступа к контейнерам. Вроде бы все на месте, ключи есть в реестре. Их можно увидеть в останстке CryptoPro, но не получается прочитать. При попытке это сделать возникает ошибка:

КриптоПро CSP ошибка 0x80090010 Отказано в доступе

Права доступа в реестре на ключи

Убедитесь так же, что новые права наследовались на дочерние ветки с самими ключами. Обычно это так, но перепроверить на всякий случай непомешает. После этого ошибка с доступом к контейнеру закрытого ключа исчезнет.

Часто задаваемые вопросы по теме статьи (FAQ)

Можно ли перенести сертификат, который находится на токене и защищен от копирования?

Очевидно, что предложенное в статье решение для этого не подойдет. Ведь тут идет речь о переносе сертификатов, которые хранятся в реестре, то есть уже были скопированы. Технические средства для копирования защищенных крипто контейнеров тоже существуют, но это не такое простое и очевидное решение.

Безопасно ли хранить сертификаты в реестре?

Это не безопасно и в общем случае я не рекомендую это делать. USB токены для хранения сертификатов придуманы не просто так. Они реально защищают сертификаты от несанкционированного копирования. Если у вас нет объективной необходимости копировать сертификаты в реестр, лучше этого не делать. Если вам нужно сделать бэкап сертификата на случай поломки токена, то просто скопируйте его в зашифрованный архив и сохраните на флешке.

Подойдет ли предложенный способ копирования сертификатов CryptoPro для VipNet?

Нет, не подойдет. В статье описан способ переноса сертификатов CryptoPro. Другие криптопровайдеры хранят сертификаты по-другому. Универсального способа для всех не существует.

Есть ли какой-то очень простой способ скопировать сертификаты crypto pro? То, что описано в статье слишком сложно для меня.

Да, есть статья на сайте контура, в ней ссылка на утилиту для копирования контейнеров Certfix. Можете воспользоваться ей.

Иногда во время установки сертификатов электронной цифровой подписи через КриптоПро после выбора ключевого контейнера возникает ошибка: «В контейнере закрытого ключа отсутствует открытый ключ шифрования». Ее устранение в большинстве случаев не требует обращения в службу поддержки пользователей: достаточно лишь следовать пошаговой инструкции установки в контейнер закрытого ключа подписи.

Причины возникновения ошибки

Ошибка «В контейнере закрытого ключа отсутствует сертификат открытого ключа» может возникать во время установки нового личного сертификата, а также при попытке просмотра закрытых ключей через контейнеры или при экспорте данных с компьютера на флешку или с электронного носителя на ПК.

Свойства КриптоПро

Пошаговая инструкция установки личного сертификата

Чтобы установить личный сертификат, не записанный на ключевой носитель, нужно:

  • Запустить программу КриптоПро: «Пуск»/«Настройка»/«Панель управления»/«КриптоПро CSP».
  • Перейти через раздел «Сервис» во вкладку «Установить личный сертификат».

Установка Сертификата ЭЦП

  • Нажать «Далее».
  • Указать путь к закрытому ключу электронной цифровой подписи через кнопку «Обзор». Пользователь в открывшейся папке выбирает файл, заканчивающийся расширением .cer.
  • После этого пользователю предстоит нажать «Открыть».

Выбор Сертификата ЭЦП

Следующий шаг — это выбор ключевого контейнера. Пользователь должен:

  • В рабочем окне «Контейнер закрытого ключа» нажать «Обзор» и выбрать контейнер, соответствующий названию ЭЦП.

Обзор контейнеров ЭЦП

  • Нажать «Далее» после того, как в графе «Имя ключевого контейнера» появится название контейнера.
  • При необходимости ввести пин-код ключевого носителя.

Затем нужно выбрать хранилище. Делает это так:

  • Пользователь нажимает «Обзор» и выбирает «Личное хранилище».

Выбор личного контейнера

  • После того как название хранилища отразится в соответствующей графе пользователь нажимает «Далее».

Выбор мастера импорта

  • После выбора контейнера для подтверждения установки нужно нажать «Готово».

Серт. в хранилище

Остается лишь перезагрузить компьютер и попробовать подписать документ. Если ошибка будет повторяться, то необходимо обратиться в сервисный центр для незапланированной замены носителя электронной подписи и закрытого ключа ЭЦП. Проблема может крыться в неисправности токена.

Установка в КриптоПРО версии 3.62 R2

Установка личного сертификата в КриптоПро версии 3.62 R2 и выше происходит иначе. В окне программы следует выбрать пункт «Установить» и подтвердить замену (если требуется). Если запроса на замену не вышло, нужно открыть вкладку «Сертификат для просмотра» и выбрать «Свойства».

Установка Крипто Про новой версии

В новом окне выбрать пункт «Установить».

Установка Сертификата в контейнер

После этого запустится «Мастер установки», в котором нужно нажать кнопку «Далее». После этого следует выбрать пункт «Поместить все сертификаты в хранилище». Для выбора хранилища нужно нажать «Обзор».

Обзор хранилищ

Для дальнейшей установки нужно выбрать «Личное хранилище».

Обзор хранилищ

Импорт завершен

Ошибка отсутствия ключа электронной цифровой подписи в контейнера возникает обычно из-за отсутствия соответствующего сертификата. Решить проблему просто: установить личный сертификат и перезагрузить ПК. Способ установки зависит от версии используемого программного обеспечения КриптоПро и занимает всего несколько минут. Если после замены или установки открытого ключа проблема не исчезла, лучше обратиться в сервисный центр для перевыпуска электронной подписи.

Иногда во время установки сертификатов электронной цифровой подписи через КриптоПро после выбора ключевого контейнера возникает ошибка: «В контейнере закрытого ключа отсутствует открытый ключ шифрования». Ее устранение в большинстве случаев не требует обращения в службу поддержки пользователей: достаточно лишь следовать пошаговой инструкции установки в контейнер закрытого ключа подписи.

Причины возникновения ошибки

Ошибка «В контейнере закрытого ключа отсутствует сертификат открытого ключа» может возникать во время установки нового личного сертификата, а также при попытке просмотра закрытых ключей через контейнеры или при экспорте данных с компьютера на флешку или с электронного носителя на ПК.

Свойства КриптоПро

Пошаговая инструкция установки личного сертификата

Чтобы установить личный сертификат, не записанный на ключевой носитель, нужно:

  • Запустить программу КриптоПро: «Пуск»/«Настройка»/«Панель управления»/«КриптоПро CSP».
  • Перейти через раздел «Сервис» во вкладку «Установить личный сертификат».

Установка Сертификата ЭЦП

  • Нажать «Далее».
  • Указать путь к закрытому ключу электронной цифровой подписи через кнопку «Обзор». Пользователь в открывшейся папке выбирает файл, заканчивающийся расширением .cer.
  • После этого пользователю предстоит нажать «Открыть».

Выбор Сертификата ЭЦП

Следующий шаг — это выбор ключевого контейнера. Пользователь должен:

  • В рабочем окне «Контейнер закрытого ключа» нажать «Обзор» и выбрать контейнер, соответствующий названию ЭЦП.

Обзор контейнеров ЭЦП

  • Нажать «Далее» после того, как в графе «Имя ключевого контейнера» появится название контейнера.
  • При необходимости ввести пин-код ключевого носителя.

Затем нужно выбрать хранилище. Делает это так:

  • Пользователь нажимает «Обзор» и выбирает «Личное хранилище».

Выбор личного контейнера

  • После того как название хранилища отразится в соответствующей графе пользователь нажимает «Далее».

Выбор мастера импорта

  • После выбора контейнера для подтверждения установки нужно нажать «Готово».

Серт. в хранилище

Остается лишь перезагрузить компьютер и попробовать подписать документ. Если ошибка будет повторяться, то необходимо обратиться в сервисный центр для незапланированной замены носителя электронной подписи и закрытого ключа ЭЦП. Проблема может крыться в неисправности токена.

Установка в КриптоПРО версии 3.62 R2

Установка личного сертификата в КриптоПро версии 3.62 R2 и выше происходит иначе. В окне программы следует выбрать пункт «Установить» и подтвердить замену (если требуется). Если запроса на замену не вышло, нужно открыть вкладку «Сертификат для просмотра» и выбрать «Свойства».

Установка Крипто Про новой версии

В новом окне выбрать пункт «Установить».

Установка Сертификата в контейнер

После этого запустится «Мастер установки», в котором нужно нажать кнопку «Далее». После этого следует выбрать пункт «Поместить все сертификаты в хранилище». Для выбора хранилища нужно нажать «Обзор».

Обзор хранилищ

Для дальнейшей установки нужно выбрать «Личное хранилище».

Обзор хранилищ

Импорт завершен

Ошибка отсутствия ключа электронной цифровой подписи в контейнера возникает обычно из-за отсутствия соответствующего сертификата. Решить проблему просто: установить личный сертификат и перезагрузить ПК. Способ установки зависит от версии используемого программного обеспечения КриптоПро и занимает всего несколько минут. Если после замены или установки открытого ключа проблема не исчезла, лучше обратиться в сервисный центр для перевыпуска электронной подписи.

Свойства КриптоПро

Причины ошибки: «Закрытый ключ не соответствует открытому ключу в контейнере»

Данная проблема имеет длительную историю, и продолжает с регулярной частотой фиксироваться у многих пользователей.

Её причины сводятся к следующему:

  • При выполнении установки нужного личного сертификата пользователем был неверно указан контейнер;
  • Носитель, на котором хранится контейнер, работает некорректно (испорчен, повреждён и др.);
  • Файл сертификата (обычно с расширением .cer) повреждён;
  • При выполнении процедуры генерации ключей контейнер был сформирован неверно;
  • Ключ был сформирован на ранней версии «КриптоПро», а работа ведётся на более новой версии системы;
  • Пин-код контейнера указан неверно;
  • Выбран неподходящий контейнер.

Лого КриптоПро

Что делать, если неправильно указан контейнер

Первым делом убедитесь, что вы правильно указали нужный контейнер при установке сертификата.

Сама процедура установки сводится к следующему:

Убедитесь в корректной работе носителя

В некоторых случаях носитель (обычно это флеш-накопитель) может работать некорректно. Что делать в таком случае? Замените ваш флеш-накопитель.

Также рекомендуем проверить через « Проводник » (Мой компьютер) содержимое носителя на предмет наличия контейнера. Обычно контейнер – это папка с шестью файлами. Файл сертификата расположен отдельно.

Редактирование системного реестра при закрытом ключе

Хорошие результаты в решении проблемы с несоответствием закрытого ключа в контейнере открытому ключу даёт редактирование системного реестра.

И удалите содержимое указанной папки (Keys). Заново выполните установку сертификата.

Удаление запомненных системой пароли от КриптоПРО

Хорошие результаты даёт удаление сохранённых системой паролей. Для удаления имеющихся паролей запустите вашу «КриптоПро», выберите там вкладку « Сервис ». В данной вкладке кликните на опцию « Удалить запомненные пароли », установите галочку рядом с « Пользователем », и нажмите далее на « Ок ».

Вкладка сервиса КриптоПро CSP

Активация опции автоматического выбора контейнера

Опция автоматического нахождения контейнера

Переустановка системы КриптоПро, если закрытый ключ не соответствует открытому

Если ничего из перечисленного не помогло, рекомендуем полностью переустановить систему «КриптоПро», выбрав наиболее актуальную версию продукта.

Контроль учётных записей

Заключение

Выше мы рассмотрели, почему появляется уведомление «Закрытый ключ на указанном контейнере не соответствует открытому ключу в сертификате», и что необходимо делать для решения возникшей проблемы. Используйте перечисленные нами советы для устранения описанной дисфункции и обеспечения стабильной работы системы «КриптоПро».

Читайте также: