Как правило, после выпуска сертификата открытого ключа, он помещается в ключевой контейнер, и его можно извлечь из контейнера средствами КриптоПро CSP. Для этого необходимо выполнить следующие действия:
1. Перейти в Панель управления (ПУСК – Панель управления) найдите и запустить КриптоПро CSP.
2. На вкладке сервис выбрать «Просмотреть сертификат в контейнере».
3. Выбрать нужный контейнер и нажать «Далее». Если в контейнере присутствует сертификат, то отобразится информация о нём.
4. Нажать «Свойства». Откроется сам сертификат.
5. Перейти на вкладку «Состав». Нажать кнопку «Копировать в файл».
6. Выбрать варианты: «Нет, не экспортировать закрытый ключ» и «Файл в DER-кодировке X509» (.CER)
7. Указать путь для сохранения файла сертификата.
***При выполнении пункта 3 может появиться информационное сообщение: «В контейнере закрытого ключа не найдены сертификаты». В этом случае, сертификат, скорее всего, был передан пользователю в виде файла.***
***Если при использовании версии КриптоПро CSP 2.0 появляется сообщение: «В контейнере не найдены секретные ключи», то, скорее всего этот контейнер был сгенерирован в КриптоПро CSP 3.0 или выше.***
Криптопровайдер КриптоПро предназначен для работы с криптографическими операциями. Это нужно при работе с интернет-банкингом, ЭЦП, электронной подачей отчетов в налоговую инспекцию и другие государственные органы. Тем, кто часто работает с токенами, сертификатами, закрытыми ключами и прочими криптопрограммами с помощью КриптоПро, часто приходится переносить и копировать большое количество контейнеров. Криптопровайдер имеет штатный механизм для этого, но он работает только в ручном режиме и крайне неудобен при работе с большими массивами данных. Поэтому если требуется сменить рабочий компьютер или воспользоваться сервисом с другого рабочего места, приходится иногда устраивать настоящие «пляски с бубном». Однако есть способы, как ускорить эту процедуру.
Способы переноса
Всего в КриптоПро предусмотрено два варианта копирования ключей и сертификатов:
- Штатный механизм, предусмотренный в интерфейсе CryptoPro, найти его можно в панели управления программы. Самый легкий способ, но работать надо с каждым контейнером и сертификатом отдельно. Когда их несколько десятков (а это уже не уникальный случай даже для физических лиц, не говоря об организациях), начинается долгая и муторная процедура.
- Перенос самих файлов и записей в реестре. Очень быстрый способ: одинаково легко копировать и 3, и 33 ключа. Но при этом надо иметь определенные знания о процедуре.
Далее рассмотрены будут оба способа, но особое внимание будет уделяться именно второму. Дело в том, что иногда он — единственный доступный способ сделать работающую копию. Также уточним, что речь будет идти о переносе лишь тех контейнеров ключа, которые вписаны в реестр Windows. При хранении на токене копировать ключи не нужно, потребуются на новом компьютере лишь сертификаты.
Копирование с помощью средств КриптоПро
Штатный способ копирования контейнеров и сертификатов в КриптоПро таков:
- Открыть «Панель управления».
- Открыть «CryptoPro»
- Нажать пункт «Скопировать».
- Выбрать контейнер, с которого надо снять копию — как токен, так и компьютерный реестр.
- Задать новое имя и новый адрес для контейнера (в реестре или токене).
Алгоритм прост, но есть один момент, который портит всю картину: работает метод лишь в том случае, если еще на этапе создания ключа он получил отметку «Экспортируемый». Если такого флага не было проставлено, система выдаст сообщение: «Ошибка 0x8009000B (-2146893813) Ключ не может быть использован в указанном состоянии».
При получении такого сообщения можно смело переходить ко второму способу копирования ключей.
Копирование сертификата и ключа в файл
Если необходимо сделать копию для работы на другом компьютере, но нет возможности использовать токен, придется слегка повозиться: КриптоПро сам по себе не дает возможности переносить закрытый ключ в виде файла.
Здесь надо действовать так:
- Открыть Internet Explorer.
- Перейти во вкладку «Содержание».
- Выбрать пункт «Сертификаты».
- Выбрать нужный и нажать «Экспорт». Если появилась возможность выбрать пункт «Экспортировать закрытый ключ с сертификатом», нужно нажать «Далее». Если такой возможности нет, надо сразу переходить ко второму способу копирования ключей и сертификатов.
- В открывшемся меню проставить галочки во всех пунктах. Тогда ключ с самого начала будет иметь флаг «Экспортируемый», и его при необходимости будет легко скопировать уже с нового места.
- Придумать пароль — без этого продолжить работу нельзя.
- После ввода пароля нужно указать файл, где будет сохраняться ключ. Он будет иметь расширение .pfx.
Процедура копирования сертификата выглядит так же, только на выходе буде файл с расширением .cer. Для удобства оба файла следует скопировать в одну папку, после чего ее можно перенести на любой другой компьютер.
Для установки контейнера ключа и сертификата надо дважды щелкнуть по каждому файлу мышью. Откроется программа-мастер по установке, после этого достаточно указать для каждого параметра «По умолчанию» — и можно просто щелкать «Далее», пока процедура установки не завершится.
Массовый перенос сертификатов и ключей на новый компьютер
Второй способ копирования состоит в том, что на новом компьютере в реестре создается новая ветка — точная копия аналогичной на исходной машине. Тогда после переноса ключей и сертификатов к ним они оказываются рабочими и изначально активированными. Однако при использовании этого способа нужно вначале убедиться, что на обоих компьютерах стоит одна и та же версия Windows: попытка перенести данные с «семерки» на «десятку» может кончиться тем, что система придет в нерабочее состояние.
Вначале необходимо скопировать сами данные. Делается это в несколько этапов:
1) Для того, чтобы это сделать, нужно прежде всего узнать SID — идентификатор безопасности текущего пользователя (напоминаем, что на каждом компьютере может быть не один пользователь, и что опытные люди из-под учетной записи админа без острой необходимости не работают). Для этого нужно открыть командную строку и ввести в ней следующую комбинацию:
Вместо polzovatel нужно вводить то имя пользователя, для которой нужно узнать идентификатор. Полученный результат надо записать или скопировать в «Блокнот».
2) Следующий шаг — это копирование контейнеров в файл. Здесь нужно зайти в редактор реестра и отыскать в нем следующую ветку:
3) В ветке нужно найти и экспортировать папку Keys. После этого следует скопировать ту ветку реестра, с которой работали, в отдельный файл. На выходе получим копию, в которой уже хранятся закрытые ключи.
4) Ключи готовы, но к ним нужны сертификаты. Для этого в Windows версий с 7 по 10 нужно найти директорию по адресу:
Найденную директорию надо скопировать.
Перенос и установка
Чтобы на новом компьютере ключи и сертификаты встали на место, надо перенести на него два файла:
- Сохраненную часть реестра — ту ветку с ключами, которую экспортировали ранее.
- Найденную и скопированную директорию, где хранятся сертификаты. Переносить ее надо сразу же на нужное место, заменяя содержимое аналогичной директории. Если этого не сделать, на этапе редактирования реестра возникнут проблемы, и может потребоваться восстановление реестра из сохраненной копии.
После этого необходимо сделать следующее:
- Описанным выше способом нужно узнать идентификатор безопасности пользователя (SID) на новом компьютере.
- Открыть сохраненный и перенесенный файл с частью реестра. Сделать это надо в текстовом редакторе («Блокноте» или аналогичной программе — в зависимости от того, что установлено на компьютере).
- Вручную заменить старый SID на новый и сохранить результат в том же формате файла.
- Дважды щелкнуть по файлу с веткой реестра. Откроется окно запроса на встраивание фрагмента в общий реестр Windows. Здесь нужно дать согласие.
Все, процедура завершена. С этого момента операционная система «считает», что каждый закрытый ключ и сертификат с него были изначально правильно установлены в штатном порядке.
Перенос КриптоПро, ключей ЭЦП, сертификатов с одного компьютера на другой
Инструкция по переносу лицензии КриптоПро, закрытых ключей ЭЦП и сертификатов с одного компьютера на другой.
1. Перенос лицензии криптопро.
Серийный номер КриптоПро CSP 3.6 находится в ветке реестра
в значении параметра ProductID (имя раздела 05480A45343B0B0429E4860F13549069 может оказаться другим).
2. Перенос закрытых ключей ЭЦП. (Имеются ввиду ЭЦП хранящиеся в реестре, для ключей хранящихся на флешках, и токенах действие не требуется.)
2.1 Узнать SID текущего пользователя (нужен пользователь у которого ключи).
Способ 1: командой
psexec -i -d -s c:windows
egedit.exe
и нам становятся доступны все разделы. Этот же трюк спасет если система вообще не загружается, нужно скопировать файл C:WindowsSystem32configSOFTWARE и загрузить его как куст реестра, главное, чтобы файл не был поврежден.
2.3. В reg-файле меняем через автозамену SID_текущего_пользователя, на SID пользователя в новой сисмеме.
2.4. Запускаем reg-файл, после этого все готово, но необходимо будет заново установить личные сертификаты для того что бы привязать сертификаты к контейнерам. Если не видно контейнеров, то неправильно указали SID_пользователя, т.к. контейнеры видны только под тем пользователем, под SID’ом которого они находятся.
Если перенести ключи данным способом не получается можно скопировать ЭЦП на флешку (КриптоПро: Перенос ключей ЭЦП с дискет на флешку или в реестр).
3. Перенос сертификатов.
При установке личных сертификатов средствами Windows не выполняется привязка закрытого ключа ЭЦП, и, очевидно, работать ничего не будет.
Способ 2. Установка сертификатов из контейнеров ЭЦП. При установке личного сертификата в КриптоПро версии 3.6 и выше существует возможность скопировать сертификат в контейнер закрытого ключа. Данная процедура позволяет значительно облегчить процесс переноса. Если сертификат установлен в контейнер закрытого ключа, не нужно ни чего экспортировать, достаточно просто перенести контейнеры, а потом зайти в
выбрать нужный контейнер и нажать кнопки «Далее» и «Установить».
Добавить комментарий
Если для работы используется дискета или flash-накопитель, скопировать контейнер с сертификатом можно средствами Windows (этот способ подходит для версий КриптоПро CSP не ниже 3.0). Папку с закрытым ключом (и, если есть, файл сертификата — открытый ключ) поместите в корень дискеты / flash-накопителя (если поместить не в корень, то работа с сертификатом будет невозможна). Название папки при копировании рекомендуется не изменять.
В папке с закрытым ключом должно быть 6 файлов с расширением.key. Как правило, в закрытом ключе присутствует открытый ключ (файл header.key в этом случае будет весить больше 1 Кб). В этом случае копировать открытый ключ необязательно. Пример закрытого ключа — папки с шестью файлами и открытого ключа — файла с расширением.cer.
Если у вас MacOS, смотрите инструкцию «Как скопировать контейнер с сертификатом на MacOS».
1. Зайдите на профиль Диагностики «Копирования» по ссылке.
2. Вставьте носитель, на который необходимо скопировать сертификат.
3. На нужном сертификате нажмите на кнопку «Скопировать».
Если на контейнер был задан пароль — появится сообщение «Введите пароль для устройства с которого будет скопирован сертификат».
Введите пароль и нажмите на кнопку «Далее».
4. Выберите носитель, куда необходимо скопировать сертификат и нажмите «Далее».
5. Задайте имя новому контейнеру и нажмите на кнопку «Далее».
6. Должно появиться сообщение об успешном копировании сертификата.
3. Выберите носитель для хранения копии контейнера и нажмите ОК. При копировании в реестр можно поставить галочку на пункте «Копировать к ключевой контейнер компьютера», тогда после копирования контейнер будет доступен всем пользователям данного компьютера.
4. После копирования нажмите внизу слева кнопку Обновить
Если хотите работать со скопированными контейнерами — необходимо установить сертификаты.
В окне Копирование контейнера закрытого ключа нажмите на кнопку Обзор.
Выберите контейнер, который необходимо скопировать, и кликните по кнопке «Ок», затем «Далее». Если вы копируете с рутокена, то появится окно ввода, в котором следует указать pin-код. Если вы не меняли pin-код на носителе, стандартный pin-код — 12345678.
Придумайте и укажите вручную имя для нового контейнера. В названии контейнера допускается русская раскладка и пробелы. Затем кликните Готово.
В окне Вставьте чистый ключевой носитель выберите носитель, на который будет помещен новый контейнер.
На новый контейнер будет предложено установить пароль. Рекомендуем установить такой пароль, чтобы вам было легко его запомнить, но посторонние не могли его угадать или подобрать. Если вы не хотите устанавливать пароль, можно оставить поле пустым и нажать «ОК».
Не храните пароль/pin-код в местах, к которым имеют доступ посторонние. В случае утери пароля/pin-кода использование контейнера станет невозможным.
Если вы копируете контейнер на смарт-карту ruToken, сообщение будет звучать иначе. В окне ввода укажите pin-код. Если вы не меняли pin-код на носителе, стандартный pin-код — 12345678.
После копирования система вернется на вкладку «Сервис» КриптоПро CSP. Копирование завершено. Если вы планируете использовать для работы в Экстерне новый ключевой контейнер, установите его через Крипто Про.
При копировании может возникнуть «Ошибка копирования сертификата», если у вас нет лицензии на КриптоПроCSP или контейнер получил признак «неэкспортируемый». Справиться с этим поможет инструкция.
Экспорт сертификата с закрытым ключом
1. Откройте оснастку работы с сертификатами:
2. Откройте сертификат, который нужно скопировать. На вкладке «Состав» нажмите «Копировать в файл».
3. В «Мастере экспорта сертификтов» нажмите «Далее» и выберите пункт «Да, экспортировать закрытый ключ». Нажмите «Далее».
4. На следующем этапе поставьте галочки у пунктов «Включить по возможности все сертификаты в путь сертификации» и «Экспортировать все расширенные свойства», остальные галочки необходимо убрать. Нажмите «Далее».
5. Обязательно задайте пароль для экспортируемого файла. Данный пароль не рекомендуется сообщать по электронной почте. Нажмите «Далее».
6. Укажите имя файла, выберите путь сохранения и нажмите «Далее», затем нажмите «Готово».
7. Экспортируйте открытый ключ сертификата (см. Экспорт открытого ключа).
8. Заархивируйте полученные файлы форматов .pfx и .cer.
Установка сертификата с закрытым ключом
1. Откройте .pfx файл. Сразу запустится «Мастер импорта сертификатов».
2. Укажите хранилище «Текущий пользователь» и нажмите «Далее», затем снова «Далее».
4. Выберите пункт «Поместить все сертификаты в следующее хранилище», нажмите на кнопку «Обзор», выберите «Личное» и нажмите на кнопку «ОК». Нажмите «Далее», а затем «Готово».
5. В окне КриптоПро выберите носитель, на который хотите сохранить контейнер. При необходимости задайте пароль.
6. Для корректной работы сертификата со встроенной лицензией переустановите сертификат в контейнер (см. Как установить личный сертификат в КриптоПро).
1. Необходимо найти ветку реестра с нужным контейнером. Ветки реестра, в которых может быть контейнер закрытого ключа:
2. После того, как нашли нужную ветку, нажмите правой кнопкой мыши на ветку с контейнером и выберите «Экспортировать».
3. Введите имя файла и нажмите на кнопку «Сохранить».
4. Скопируйте файл на тот компьютер, где будете работать с электронной подписью обычными средствами Windows.
5. Пройдите диагностику на сайте https://help.kontur.ru .
6. Как диагностика закончится, нажмите на ссылку «Показать результаты».
7. В списке результатов выберите «Информация о Windows». Скопируйте оттуда SID текущего пользователя.
8. Откройте экспортированный файл реестра с помощью «Блокнота».
9. Замените SID пользователя на скопированный ранее.
Если ветка реестра экспортируется из 32-битной ОС в 64-битную ОС, добавьте в путь ветки реестра параметр Wow6432Node как на скриншоте:
10. Сохраните изменения и закройте файл.
11. Снова нажмите на файл правой кнопкой мыши и выберите «Слияние». В появившемся окне нажмите «Да».
Должно появиться сообщение о том, что данные успешно внесены в реестр. Нажмите «ОК».
Если появляется сообщение «Ошибка при доступе к реестру», необходимо еще раз проверить все пути в файле на корректность. Также проверьте, чтобы в пути не было лишних пробелов, знаков.
12. После того, как данные будут внесены в реестр, необходимо вручную установить сертификат (см. Как установить личный сертификат).
Мне постоянно приходится иметь дело
с сертификатами, токенами, закрытыми ключами, криптопровайдерами и
прочим. Сейчас все завязано на это — банкинг, сдача отчетности в разные
гос органы, обращения опять же в эти органы, в том числе и физ лиц. В
общем, с этой темой рано или поздно придется познакомиться многим. Для
того, чтобы перенести все это хозяйство с одного компьютера на другой,
иногда приходится прилично повозиться, особенно тем, кто не в теме.
Перенести закрытые ключи и сертификаты КриптоПро на другой компьютер можно двумя способами:
- Перенести
или скопировать контейнер закрытого ключа через стандартную оснастку
CryptoPro в панели управления. Это самый простой и быстрый способ, если у
вас не много сертификатов и ключей. Если же их несколько десятков, а
это не такая уж и редкость, то такой путь вам не подходит. - Скопировать
сертификаты и ключи непосредственно через перенос самих исходных файлов
и данных, где все это хранится. Объем работы одинаков и для 5 и для
50-ти сертификатов, но требуется больше усилий и знаний.
Я
опишу оба этих способа, но подробно остановлюсь именно на втором
способе. В некоторых ситуациях он является единственно возможным.
Важное замечание. Я буду переносить контейнеры закрытого ключа, которые
хранятся в реестре. Если вы храните их только на токене, то переносить
контейнеры вам не надо, только сертификаты.
Копирование закрытого ключа через оснастку КриптоПро
Для того, чтобы скопировать контейнер для хранения закрытого ключа сертификата штатным средством, необходимо в Панели управления открыть оснастку CryptoPro, перейти в раздел Сервис и нажать Скопировать.
Далее
вы выбираете текущий контейнер, который хотите скопировать. Это может
быть либо токен, либо реестр компьютера. Затем новое имя и новое
расположение контейнера. Опять же, это может быть как реестр, так и
другой токен.
Ошибка копирования контейнера
Но
тут есть важный нюанс. Если во время создания закрытого ключа он не был
помечен как экспортируемый, скопировать его не получится. У вас будет
ошибка:
Ошибка
копирования контейнера. У вас нет разрешений на экспорт ключа, потому
что при создании ключа не был установлен соответствующий флаг. Ошибка
0x8009000B (-2146893813) Ключ не может быть использован в указанном
состоянии.
Если получили такую ошибку, то для вас этот способ переноса не подходит. Можно сразу переходить к следующему.
Отдельно
расскажу, как скопировать сертификат и закрытый ключ к нему в файл,
чтобы перенести на другой компьютер без использования токена. Штатные
возможности CryptoPro не позволяют скопировать закрытый ключ в файл.
Запускаем Internet Explorer, открываем его настройки и переходим на вкладку Содержание. Там нажимаем на Сертификаты.
Выбираем нужный сертификат и нажимаем Экспорт.
Если у вас после слов «Экспортировать закрытый ключ вместе с сертификатом» нет возможности выбрать ответ «Да, экспортировать закрытый ключ«,
значит он не помечен как экспортируемый и перенести его таким способом
не получится. Можно сразу переходить к другому способу, который описан
ниже.
Если же такая возможность есть, то выбирайте именно этот пункт и жмите Далее.
В следующем меню ставьте все галочки, так вам будет удобнее и проще в
будущем, если вдруг опять понадобится копировать ключи уже из нового
места.
Укажите
какой-нибудь пароль и запомните его! Без пароля продолжить нельзя. В
завершении укажите имя файла, куда вы хотите сохранить закрытый ключ.
Теперь вам нужно скопировать сам сертификат. Только что мы копировали
закрытый ключ для него. Не путайте эти понятия, это разные вещи. Опять
выбираете этот же сертификат в списке, жмите Экспорт и выберите файл
формата .CER.
Сохраните сертификат для удобства в ту же папку, куда сохранили закрытый ключ от него.
В итоге у вас должны получиться 2 файла с расширениями:
- .pfx
- .cer
Вам
достаточно перенести эти 2 файла на другой компьютер и кликнуть по
каждому 2 раза мышкой. Откроется мастер по установке сертификатов. Вам
достаточно будет выбрать все параметры по-умолчанию и понажимать Далее.
Сертификат и контейнер закрытого ключа к нему будут перенесены на другой
компьютер.
Я описал первый способ
переноса в ручном режиме. Им можно воспользоваться, если у вас немного
сертификатов и ключей. Если их много и руками по одному переносить
долго, то переходим ко второму способу.
Массовый перенос ключей и сертификатов CryptoPro с компьютера на компьютер
В
интернете достаточно легко находится способ переноса контейнеров
закрытых ключей КриптоПро через копирование нужной ветки реестра, где
это все хранится. Я воспользуюсь именно этим способом. А вот с массовым
переносом самих сертификатов у меня возникли затруднения и я не сразу
нашел рабочий способ. Расскажу о нем тоже.
Для
дальнейшей работы нам надо узнать SID текущего пользователя, у которого
мы будем копировать или переносить сертификаты с ключами. Для этого в
командной строке выполните команду:
В данном случай zerox — имя учетной записи, для которой узнаем SID.
Далее скопируем контейнеры закрытых ключей в файл. Для этого на компьютере открываем редактор реестра и переходим в ветку:
где S-1-5-21-4126079715-2548991747-1835893097-1000
— SID пользователя, у которого копируем сертификаты. Выбираем папку
Keys и экспортируем ее.
Сохраняем ветку реестра в файл. В ней хранятся закрытые ключи.
Для
переноса ключей и сертификатов нам надо скопировать на другой компьютер
сохраненную ветку реестра и директорию с сертификатами My.
Открываем файл с веткой реестра в текстовом редакторе и меняем там SID
пользователя со старого компьютера на SID пользователя нового
компьютера. Можно прям в блокноте это сделать поиском с заменой.
После
этого запускаем .reg файл и вносим данные из файла в реестр. Теперь
скопируйте папку My с сертификатами в то же место в профиле нового
пользователя. На этом перенос сертификатов и контейнеров закрытых ключей
КриптоПро завершен. Можно проверять работу.
Я
не раз пользовался этим методом, на текущий момент он 100% рабочий.
Написал статью,чтобы помочь остальным, так как сам не видел в интернете
подробной и понятной с первого раза статьи на эту тему. Надеюсь, моя
таковой получилась.