Перенос контейнеров закрытых ключей и сертификатов CryptoPro
Криптопровайдер КриптоПро на сегодняшний день является, пожалуй, самым популярным на рынке, по крайней мере в России. Я хочу рассказать, как быстро и удобно перенести большое количество контейнеров закрытых ключей CryptoPro и сертификатов к ним. Существует штатный механизм в самой программе, работает в ручном режиме и не подходит, когда надо перенести большое количество.
Введение
Мне постоянно приходится иметь дело с сертификатами, токенами, закрытыми ключами, криптопровайдерами и прочим. Сейчас все завязано на это — банкинг, сдача отчетности в разные гос органы, обращения опять же в эти органы, в том числе и физ лиц. В общем, с этой темой рано или поздно придется познакомиться многим. Для того, чтобы перенести все это хозяйство с одного компьютера на другой, иногда приходится прилично повозиться, особенно тем, кто не в теме. Перенести закрытые ключи и сертификаты КриптоПро на другой компьютер можно двумя способами:
- Перенести или скопировать контейнер закрытого ключа через стандартную оснастку CryptoPro в панели управления. Это самый простой и быстрый способ, если у вас не много сертификатов и ключей. Если же их несколько десятков, а это не такая уж и редкость, то такой путь вам не подходит.
- Скопировать сертификаты и ключи непосредственно через перенос самих исходных файлов и данных, где все это хранится. Объем работы одинаков и для 5 и для 50-ти сертификатов, но требуется больше усилий и знаний.
Я опишу оба этих способа, но подробно остановлюсь именно на втором способе. В некоторых ситуациях он является единственно возможным.
Копирование закрытого ключа через оснастку КриптоПро
Для того, чтобы скопировать контейнер для хранения закрытого ключа сертификата штатным средством, необходимо в Панели управления открыть оснастку CryptoPro, перейти в раздел Сервис и нажать Скопировать.

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

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

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

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

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

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

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

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

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

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

Сохраните сертификат для удобства в ту же папку, куда сохранили закрытый ключ от него. В итоге у вас должны получиться 2 файла с расширениями:
- .pfx
- .cer
Вам достаточно перенести эти 2 файла на другой компьютер и кликнуть по каждому 2 раза мышкой. Откроется мастер по установке сертификатов. Вам нужно будет выбрать все параметры по умолчанию и понажимать Далее. Сертификат и контейнер закрытого ключа к нему будут перенесены на другой компьютер. Я описал первый способ переноса в ручном режиме. Им можно воспользоваться, если у вас немного сертификатов и ключей. Если их много и руками по одному переносить долго, то переходим ко второму способу.
Массовый перенос ключей и сертификатов CryptoPro с компьютера на компьютер
В интернете достаточно легко находится способ переноса контейнеров закрытых ключей КриптоПро через копирование нужной ветки реестра, где это все хранится. Я воспользуюсь именно этим способом. А вот с массовым переносом самих сертификатов у меня возникли затруднения и я не сразу нашел рабочий способ. Расскажу о нем тоже. Для дальнейшей работы нам надо узнать 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 пользователя нового компьютера. Можно прям в блокноте это сделать поиском с заменой.

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

Ошибка обращения к контейнеру закрытого ключа. Ошибка 0x80090010: Отказано в доступе. Связано это с тем, что у текущего пользователя, под которым вы хотите получить доступ к контейнеру, нет полных прав на ветку реестра с хранящимися ключами. Исправить это просто. Переходите в редактор реестра и выставляйте полные права к ветке Keys для текущего пользователя.

Убедитесь так же, что новые права наследовались на дочерние ветки с самими ключами. Обычно это так, но перепроверить на всякий случай непомешает. После этого ошибка с доступом к контейнеру закрытого ключа исчезнет.
Часто задаваемые вопросы по теме статьи (FAQ)
Очевидно, что предложенное в статье решение для этого не подойдет. Ведь тут идет речь о переносе сертификатов, которые хранятся в реестре, то есть уже были скопированы. Технические средства для копирования защищенных крипто контейнеров тоже существуют, но это не такое простое и очевидное решение.
Это не безопасно и в общем случае я не рекомендую это делать. USB токены для хранения сертификатов придуманы не просто так. Они реально защищают сертификаты от несанкционированного копирования. Если у вас нет объективной необходимости копировать сертификаты в реестр, лучше этого не делать. Если вам нужно сделать бэкап сертификата на случай поломки токена, то просто скопируйте его в зашифрованный архив и сохраните на флешке.
Нет, не подойдет. В статье описан способ переноса сертификатов CryptoPro. Другие криптопровайдеры хранят сертификаты по-другому. Универсального способа для всех не существует.
Да, есть статья на сайте контура, в ней ссылка на утилиту для копирования контейнеров Certfix. Можете воспользоваться ей.
Как скопировать закрытый ключ через криптопро
Дата публикации 09.01.2023
Восстановление закрытого ключа КриптоПро CSP из резервной копии
Чтобы восстановить закрытый ключ из копии на новом рабочем месте (компьютере) необходимо сначала установить программу КриптоПро CSP.
Затем можно скопировать файл контейнера на диск или оставить на флеш-накопителе.
Если вы решили хранить закрытый ключ на диске, то его нужно установить его в специальный реестр.
Чтобы это сделать:
- Вставьте флеш-накопитель с копией ключа.
- Откройте программу КриптоПро CSP (кнопка "Пуск" — Все программы" — "КРИПТО-ПРО" — "КриптоПро CSP").
- Перейдите к закладке "Сервис" и нажмите кнопку "Скопировать" (рис. 1).
- В окне копирования контейнера закрытого ключа нажмите кнопку "Обзор". При этом откроется окно выбора ключевого контейнера, в котором будут указаны все найденные контейнеры ключей, в т.ч. и находящиеся на флеш-накопителе.
- Выделите имя контейнера, находящегося на флеш-накопителе и нажмите "ОК".

Имя ключевого контейнера появится в строке выбора (рис. 2). Нажмите "Далее".
В случае, если для контейнера был задан пароль, введите его в окне ввода пароля и нажмите "ОК".

Введите имя для создаваемого ключевого контейнера (можно оставить прежнее имя) и нажмите "Готово" (рис. 3).
Выберите "Реестр" в разделе "Устройства" и нажмите "ОК".

Задайте пароль для создаваемого контейнера и нажмите "ОК" (рис. 4).

Далее требуется установить сертификат закрытого ключа в хранилище.
Откройте программу КриптоПро CSP (кнопка "Пуск" — Все программы" — "КРИПТО-ПРО" — "КриптоПро CSP").
Перейдите на закладку "Сервис" и нажмите кнопку "Просмотреть сертификаты в контейнере" (рис. 5).

Нажмите кнопку "Обзор" в окне "Сертификаты в контейнере закрытого ключа" и выберите имя контейнера из списка (рис. 6).
Если вы скопировали контейнер закрытого ключа в реестр, как описано выше, то выберите имя контейнера из реестра (указано в колонке "Считыватель"). Если не выполняли копирование и работаете с флеш-накопителя — выберите имя контейнера, который находится на флеш-накопителе.

Имя выбранного ключевого контейнера будет вставлено в окно "Сертификаты в контейнере закрытого ключа" (рис. 7). Нажмите "Далее".

При этом появится окно сертификата для просмотра (рис. 8). Нажмите кнопку "Установить".

При этом появится сообщение об успешной установке сертификата в хранилище (рис. 9).
Поддержка и помощь
Наш менеджер уже увидел Ваше обращение и спешит помочь Вам как можно скорее!
В рабочее время (пн – пт с 9:00 до 18:00) наши менеджеры очень активны и общительны и с радостью ответят Вам в течение дня.
В остальное время – дожидайтесь ответа на следующий рабочий день.
А пока предлагаем вам:
- Почитать отзывы наших клиентов;
- Узнать о новинках для бизнеса в блоге;
- Пообщаться с нашими клиентами в группе ВКонтакте и на Facebook.
Заказ обратного звонка
Как скопировать контейнер закрытого ключа в КриптоПро?
Копирование контейнера закрытого ключа – обязательное действие при переустановке СБиС на другой компьютер. Вы также можете скопировать сертификат, если хотите создать запасной ключ электронной подписи.
Копирование контейнера закрытого ключа на флешку, дискету или токен — достаточно сложный процесс, во избежание ошибок важно четко следовать нашей инструкции.
КриптоПро: копирование сертификата
Шаг 1. Открытие программы КриптоПро
Чтобы открыть программу проделайте следующий путь:
Нажмите меню Пуск, затем перейдите в Программы ⇒ КриптоПро ⇒ КриптоПро CSP и включите вкладку Сервис.
В открытом окне Сервис нажмите кнопку Скопировать контейнер.
Шаг 2. Копирование контейнера закрытого ключа
После нажатия кнопки Скопировать контейнер, система отобразит окно Копирование контейнера закрытого ключа.
В открытом окне необходимо заполнить поле Имя ключевого контейнера.
Шаг 3. Ввод ключевого контейнера
Существует 3 способа, как заполнить поле Имя ключевого контейнера:
Ручной ввод
Выбрать из списка посредством нажатия кнопки Обзор
Поиск по сертификату ЭЦП
Кроме заполнения поля Имя ключевого контейнера, необходимо заполнить оставшиеся опции поиска:
- Введенное имя задает ключевой контейнер – переключатель устанавливается в положение Пользователь или Компьютер, в зависимости от того, в каком хранилище расположен контейнер;
- Выберите CSP для поиска ключевых контейнеров – необходимый криптопровайдер (CSP) выбирается из предлагаемого списка.
После того, как все поля заполнены, нажмите кнопку Далее.
Если на доступ к закрытому ключу установлен пароль, то система попросит ввести его. Введите пароль и нажмите кнопку ОК.
Шаг 4. Ввод нового ключевого контейнера
Система вновь отобразит окно Копирование контейнера закрытого ключа, в котором необходимо ввести имя нового ключевого контейнера и установить переключатель Введенное имя задает ключевой контейнер в положение Пользователь или Компьютер, в зависимости от того, в каком хранилище требуется разместить скопированный контейнер.
После ввода нажмите кнопку Готово.
Шаг 5. Выбор носителя для скопированного контейнера
На Вашем экране появится окно, в котором необходимо выбрать носитель для скопированного контейнера.
Вставьте носитель (токен, флешка, дискета) в считыватель и нажмите кнопку ОК.
Шаг 6. Установка пароля
Система отобразит окно установки пароля на доступ к закрытому ключу.
Введите пароль, подтвердите его, при необходимости установите флажок Запомнить пароль.
Если данный флажок будет установлен, то пароль сохранится в специальном хранилище на локальном компьютере, и при обращении к закрытому ключу пароль будет автоматически считываться из этого хранилища, а не вводиться пользователем.
После ввода необходимых данных нажмите кнопку ОК. Средство криптозащиты информации «КриптоПро CSP» скопирует контейнер закрытого ключа.
Если у Вас остались вопросы, Вы можете заказать консультацию специалиста.
Как скопировать контейнер с сертификатом на другой носитель?
Если для работы используется дискета или flash-накопитель, скопировать контейнер с сертификатом можно средствами Windows (этот способ подходит для версий КриптоПро CSP не ниже 3.0). Папку с закрытым ключом (и, если есть, файл сертификата — открытый ключ) поместите в корень дискеты / flash-накопителя (если поместить не в корень, то работа с сертификатом будет невозможна). Название папки при копировании рекомендуется не изменять.
В папке с закрытым ключом должно быть 6 файлов с расширением.key. Как правило, в закрытом ключе присутствует открытый ключ (файл header.key в этом случае будет весить больше 1 Кб). В этом случае копировать открытый ключ необязательно. Пример закрытого ключа — папки с шестью файлами и открытого ключа — файла с расширением.cer.


Копирование на профиле Диагностики
1. Зайдите на профиль Диагностики «Копирования» по ссылке.
2. Вставьте носитель, на который необходимо скопировать сертификат.
3. На нужном сертификате нажмите на кнопку «Скопировать».

Если на контейнер был задан пароль — появится сообщение «Введите пароль для устройства с которого будет скопирован сертификат».

Введите пароль и нажмите на кнопку «Далее».
4. Выберите носитель, куда необходимо скопировать сертификат и нажмите «Далее».

5. Задайте имя новому контейнеру и нажмите на кнопку «Далее».

6. Должно появиться сообщение об успешном копировании сертификата.

Массовое копирование
- Скачайте и запустите утилиту. Дождитесь загрузки всего списка контейнеров/сертификатов и отметьте нужные галочками.
- Выберите меню «Массовые действия» и нажмите на кнопку «Копирование контейнеров».

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

4. После копирования нажмите внизу слева кнопку «Обновить».
Если хотите работать со скопированными контейнерами — необходимо установить сертификаты.
Копирование с помощью КриптоПро CSP
Выберите «Пуск» > «Панель управления» > «КриптоПро CSP». Перейдите на вкладку «Сервис»и кликните по кнопке «Скопировать».

В окне «Копирование контейнера закрытого ключа» нажмите на кнопку «Обзор».

Выберите контейнер, который необходимо скопировать, и кликните по кнопке «Ок», затем «Далее». Если вы копируете с рутокена, то появится окно ввода пин-кода, в котором следует указать стандартный pin-код — 12345678.

Придумайте и укажите вручную имя для нового контейнера. В названии контейнера допускается русская раскладка и пробелы. Затем кликните «Готово».

В окне «Вставьте чистый ключевой носитель» выберите носитель, на который будет помещен новый контейнер.

На новый контейнер будет предложено установить пароль. Устанавливать пароль необязательно, можете оставить поле пустым и нажать на кнопку «Ок». В случае утери пароля/pin-кода использование контейнера станет невозможным.

Если вы копируете контейнер на смарт-карту ruToken, сообщение будет звучать иначе. Укажите стандартный pin-код — 12345678.

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