Как сделать закрытый ключ экспортируемым
Перенос контейнеров закрытых ключей и сертификатов CryptoPro
Криптопровайдер КриптоПро на сегодняшний день является, пожалуй, самым популярным на рынке, по крайней мере в России. Я хочу рассказать, как быстро и удобно перенести большое количество контейнеров закрытых ключей CryptoPro и сертификатов к ним. Существует штатный механизм в самой программе, работает в ручном режиме и не подходит, когда надо перенести большое количество.
Введение
Мне постоянно приходится иметь дело с сертификатами, токенами, закрытыми ключами, криптопровайдерами и прочим. Сейчас все завязано на это — банкинг, сдача отчетности в разные гос органы, обращения опять же в эти органы, в том числе и физ лиц. В общем, с этой темой рано или поздно придется познакомиться многим. Для того, чтобы перенести все это хозяйство с одного компьютера на другой, иногда приходится прилично повозиться, особенно тем, кто не в теме.
Перенести закрытые ключи и сертификаты КриптоПро на другой компьютер можно двумя способами:
Я опишу оба этих способа, но подробно остановлюсь именно на втором способе. В некоторых ситуациях он является единственно возможным.
Копирование закрытого ключа через оснастку КриптоПро
Для того, чтобы скопировать контейнер для хранения закрытого ключа сертификата штатным средством, необходимо в Панели управления открыть оснастку CryptoPro, перейти в раздел Сервис и нажать Скопировать.
Далее вы выбираете текущий контейнер, который хотите скопировать. Это может быть либо токен, либо реестр компьютера. Затем новое имя и новое расположение контейнера. Опять же, это может быть как реестр, так и другой токен.
Ошибка копирования контейнера
Но тут есть важный нюанс. Если во время создания закрытого ключа он не был помечен как экспортируемый, скопировать его не получится. У вас будет ошибка:
Ошибка копирования контейнера. У вас нет разрешений на экспорт ключа, потому что при создании ключа не был установлен соответствующий флаг. Ошибка 0x8009000B (-2146893813) Ключ не может быть использован в указанном состоянии.
Если получили такую ошибку, то для вас этот способ переноса не подходит. Можно сразу переходить к следующему.
Отдельно расскажу, как скопировать сертификат и закрытый ключ к нему в файл, чтобы перенести на другой компьютер без использования токена. Штатные возможности CryptoPro не позволяют скопировать закрытый ключ в файл.
Запускаем Internet Explorer, открываем его настройки и переходим на вкладку Содержание. Там нажимаем на Сертификаты.
Выбираем нужный сертификат и нажимаем Экспорт.
Если у вас после слов «Экспортировать закрытый ключ вместе с сертификатом» нет возможности выбрать ответ «Да, экспортировать закрытый ключ«, значит он не помечен как экспортируемый и перенести его таким способом не получится. Можно сразу переходить к другому способу, который описан ниже.
Если же такая возможность есть, то выбирайте именно этот пункт и жмите Далее. В следующем меню ставьте все галочки, так вам будет удобнее и проще в будущем, если вдруг опять понадобится копировать ключи уже из нового места.
Сохраните сертификат для удобства в ту же папку, куда сохранили закрытый ключ от него.
В итоге у вас должны получиться 2 файла с расширениями:
Вам достаточно перенести эти 2 файла на другой компьютер и кликнуть по каждому 2 раза мышкой. Откроется мастер по установке сертификатов. Вам достаточно будет выбрать все параметры по-умолчанию и понажимать Далее. Сертификат и контейнер закрытого ключа к нему будут перенесены на другой компьютер.
Я описал первый способ переноса в ручном режиме. Им можно воспользоваться, если у вас немного сертификатов и ключей. Если их много и руками по одному переносить долго, то переходим ко второму способу.
Массовый перенос ключей и сертификатов CryptoPro с компьютера на компьютер
В интернете достаточно легко находится способ переноса контейнеров закрытых ключей КриптоПро через копирование нужной ветки реестра, где это все хранится. Я воспользуюсь именно этим способом. А вот с массовым переносом самих сертификатов у меня возникли затруднения и я не сразу нашел рабочий способ. Расскажу о нем тоже.
Для дальнейшей работы нам надо узнать SID текущего пользователя, у которого мы будем копировать или переносить сертификаты с ключами. Для этого в командной строке выполните команду:
В данном случай zerox — имя учетной записи, для которой узнаем SID.
Далее скопируем контейнеры закрытых ключей в файл. Для этого на компьютере открываем редактор реестра и переходим в ветку:
где S-1-5-21-4126079715-2548991747-1835893097-1000 — SID пользователя, у которого копируем сертификаты. Выбираем папку Keys и экспортируем ее.
Сохраняем ветку реестра в файл. В ней хранятся закрытые ключи.
Теперь нам нужно скопировать сразу все сертификаты. В Windows 7, 8 и 10 они живут в директории — C:\Users\zerox\AppData\Roaming\Microsoft\SystemCertificates\My. Сохраняйте эту директорию.
Для переноса ключей и сертификатов нам надо скопировать на другой компьютер сохраненную ветку реестра и директорию с сертификатами My. Открываем файл с веткой реестра в текстовом редакторе и меняем там SID пользователя со старого компьютера на SID пользователя нового компьютера. Можно прям в блокноте это сделать поиском с заменой.
Я не раз пользовался этим методом, на текущий момент он 100% рабочий. Написал статью,чтобы помочь остальным, так как сам не видел в интернете подробной и понятной с первого раза статьи на эту тему. Надеюсь, моя таковой получилась.
If you liked my post, feel free to subscribe to my rss feeds
This entry was written by admin and posted on 7th Апрель 2018 at 1:44 дп and filed under Uncategorised. Bookmark the permalink. Follow any comments here with the RSS feed for this post. Post a comment(Latest is displayed first) or leave a trackback: Trackback URL.
Как скопировать контейнер?
В случае, если для работы используется flash-накопитель или дискета, копирование можно выполнить средствами Windows (этот способ подходит для версий КриптоПро CSP не ниже 3.0). Папку с закрытым ключом (и файл сертификата, если он есть) необходимо поместить в корень flash-накопителя (дискеты). Название папки при копировании рекомендуется не изменять.
Папка с закрытым ключом должна содержать 6 файлов с расширением.key. Ниже приведен пример содержимого такой папки.
Копирование контейнера также может быть выполнено с помощью криптопровайдера КриптоПро CSP. Для этого необходимо выполнить следующие шаги:
1. Выбрать Пуск / Панель Управления / КриптоПро CSP.
2. Перейти на вкладку Сервис и кликнуть по кнопке Скопировать. (см. рис. 1).
Рис. 1. Окно «Свойства КриптоПро CSP»
3. В окне Копирование контейнера закрытого ключа нажать на кнопку Обзор (см. рис. 2).
Рис. 2. Копирование контейнера закрытого ключа
4. Выбрать контейнер из списка, кликнуть по кнопке Ок, затем Далее.
5. Далее необходимо указать вручную имя контейнера, на который будет выполнено копирование. В названии контейнера допускается русская раскладка и пробелы. Затем выбрать Готово (см. рис. 3).
Рис. 3. Имя ключевого контейнера
6. В окне «Вставьте и выберите носитель для хранения контейнера закрытого ключа» необходимо выбрать носитель, на который будет помещен новый контейнер (см. рис. 4).
Рис. 4. Выбор чистого ключевого носителя
7. На новый контейнер будет предложено установить пароль. Установка пароля не является обязательной, можно оставить поле пустым и нажать на кнопку Ок (см. рис. 5).
Рис. 5. Установка пароля на контейнер
Если копирование выполняется на носитель Rutoken, сообщение будет звучать иначе (см. рис. 6)
Рис. 6. Pin-код для контейнера
Рекомендуется указать стандартный pin-код (12345678)
Обращаем ваше внимание: в случае утери пароля/pin-кода использование контейнера станет невозможным.
8. После выполнения копирования система вернется на вкладку Сервис в окне КриптоПро CSP. Копирование завершено. Если планируется использовать для работы в системе «Контур-Экстерн» новый ключевой контейнер, необходимо установить личный сертификат (см. Как установить личный сертификат?).
Как сделать закрытый ключ экспортируемым
Экспорт открытого ключа возможен в том случае, если ЭП уже установлена на рабочем месте пользователя. Если ЭП на компьютере пользователя еще не установлена, ее необходимо установить, воспользовавшись инструкциями, которые выдал Удостоверяющий центр. В случае возникновения трудностей с установкой, необходимо обратиться в УЦ, где была приобретена ЭП.
Экспортировать открытый ключ в файл на рабочем месте пользователя можно двумя способами:
1). Из Свойств обозревателя.
Выберите вкладку Содержание, кнопка «Сертификаты», вкладка «Личные».
В списке сертификатов найдите нужный и отметьте его. Нажмите кнопку «Экспорт».
Запустится «Мастер импорта сертификатов».
Ответьте на вопросы мастера:
— Нет. Не экспортировать закрытый ключ.
— Файлы Х.509 (.CER) в кодировке DER
— Обзор. Выберите папку, куда необходимо сохранить файл (в этом окне внизу укажите желаемое имя файла). Сохранить.
В результате этих действий в указанной вами папке создастся открытый файл сертификата ключа ЭП.
2). Из КриптоПро CSP.
Выберите вкладку «Сервис», кнопка «Посмотреть сертификаты в контейнере».
В открывшемся окне по кнопке «Обзор» выберите ключевой контейнер, сертификаты которого вы хотите посмотреть.
В небольшом окне выбора контейнера выберите требуемый считыватеть (РуТокен, ЕТокен, дисковод) и контейнер закрытого ключа на нем. ОК.
В случае наличия файла открытого ключа в контейнере закрытого ключа, система отобразит окно с информации о нем. Нажмите кнопку «Свойства».
В открывшемся окне свойств сертификата перейти на вкладку «Состав» и нажать кнопку «Копировать в файл».
Запустится «Мастер импорта сертификатов».
Ответьте на вопросы мастера:
— Нет. Не экспортировать закрытый ключ.
— Файлы Х.509 (.CER) в кодировке DER
— Обзор. Выберите папку, куда необходимо сохранить файл (в этом окне внизу укажите желаемое имя файла). Сохранить.
В результате этих действий в указанной вами папке создастся открытый файл сертификата ключа ЭП.
Перенос контейнеров закрытых ключей и сертификатов CryptoPro
Мне постоянно приходится иметь дело с сертификатами, токенами, закрытыми ключами, криптопровайдерами и прочим. Сейчас все завязано на это — банкинг, сдача отчетности в разные гос органы, обращения опять же в эти органы, в том числе и физ лиц. В общем, с этой темой рано или поздно придется познакомиться многим. Для того, чтобы перенести все это хозяйство с одного компьютера на другой, иногда приходится прилично повозиться, особенно тем, кто не в теме.
by zerox https://serveradmin.ru/perenos-konteynerov-zakryityih-klyuchey-i-sertifikatov-cryptopro/
Перенести закрытые ключи и сертификаты КриптоПро на другой компьютер можно двумя способами:
Я опишу оба этих способа, но подробно остановлюсь именно на втором способе. В некоторых ситуациях он является единственно возможным. Важное замечание. Я буду переносить контейнеры закрытого ключа, которые хранятся в реестре. Если вы храните их только на токене, то переносить контейнеры вам не надо, только сертификаты.
Копирование закрытого ключа через оснастку КриптоПро
Для того, чтобы скопировать контейнер для хранения закрытого ключа сертификата штатным средством, необходимо в Панели управления открыть оснастку CryptoPro, перейти в раздел Сервис и нажать Скопировать.
Далее вы выбираете текущий контейнер, который хотите скопировать. Это может быть либо токен, либо реестр компьютера. Затем новое имя и новое расположение контейнера. Опять же, это может быть как реестр, так и другой токен.
Ошибка копирования контейнера
Но тут есть важный нюанс. Если во время создания закрытого ключа он не был помечен как экспортируемый, скопировать его не получится. У вас будет ошибка:
Ошибка копирования контейнера. У вас нет разрешений на экспорт ключа, потому что при создании ключа не был установлен соответствующий флаг. Ошибка 0x8009000B (-2146893813) Ключ не может быть использован в указанном состоянии.
Если получили такую ошибку, то для вас этот способ переноса не подходит. Можно сразу переходить к следующему.
Отдельно расскажу, как скопировать сертификат и закрытый ключ к нему в файл, чтобы перенести на другой компьютер без использования токена. Штатные возможности CryptoPro не позволяют скопировать закрытый ключ в файл.
Запускаем Internet Explorer, открываем его настройки и переходим на вкладку Содержание. Там нажимаем на Сертификаты.
Выбираем нужный сертификат и нажимаем Экспорт.
Если у вас после слов «Экспортировать закрытый ключ вместе с сертификатом» нет возможности выбрать ответ «Да, экспортировать закрытый ключ«, значит он не помечен как экспортируемый и перенести его таким способом не получится. Можно сразу переходить к другому способу, который описан ниже.
Если же такая возможность есть, то выбирайте именно этот пункт и жмите Далее. В следующем меню ставьте все галочки, так вам будет удобнее и проще в будущем, если вдруг опять понадобится копировать ключи уже из нового места.
Сохраните сертификат для удобства в ту же папку, куда сохранили закрытый ключ от него.
В итоге у вас должны получиться 2 файла с расширениями:
Вам достаточно перенести эти 2 файла на другой компьютер и кликнуть по каждому 2 раза мышкой. Откроется мастер по установке сертификатов. Вам достаточно будет выбрать все параметры по-умолчанию и понажимать Далее. Сертификат и контейнер закрытого ключа к нему будут перенесены на другой компьютер.
Я описал первый способ переноса в ручном режиме. Им можно воспользоваться, если у вас немного сертификатов и ключей. Если их много и руками по одному переносить долго, то переходим ко второму способу.
Массовый перенос ключей и сертификатов CryptoPro с компьютера на компьютер
В интернете достаточно легко находится способ переноса контейнеров закрытых ключей КриптоПро через копирование нужной ветки реестра, где это все хранится. Я воспользуюсь именно этим способом. А вот с массовым переносом самих сертификатов у меня возникли затруднения и я не сразу нашел рабочий способ. Расскажу о нем тоже.
Для дальнейшей работы нам надо узнать SID текущего пользователя, у которого мы будем копировать или переносить сертификаты с ключами. Для этого в командной строке выполните команду:
В данном случай zerox — имя учетной записи, для которой узнаем SID.
Далее скопируем контейнеры закрытых ключей в файл. Для этого на компьютере открываем редактор реестра и переходим в ветку:
где S-1-5-21-4126079715-2548991747-1835893097-1000 — SID пользователя, у которого копируем сертификаты. Выбираем папку Keys и экспортируем ее.
Сохраняем ветку реестра в файл. В ней хранятся закрытые ключи.
Теперь нам нужно скопировать сразу все сертификаты. В Windows 7, 8 и 10 они живут в директории — C:\Users\zerox\AppData\Roaming\Microsoft\SystemCertificates\My. Сохраняйте эту директорию.
Для переноса ключей и сертификатов нам надо скопировать на другой компьютер сохраненную ветку реестра и директорию с сертификатами My. Открываем файл с веткой реестра в текстовом редакторе и меняем там SID пользователя со старого компьютера на SID пользователя нового компьютера. Можно прям в блокноте это сделать поиском с заменой.
Я не раз пользовался этим методом, на текущий момент он 100% рабочий. Написал статью,чтобы помочь остальным, так как сам не видел в интернете подробной и понятной с первого раза статьи на эту тему. Надеюсь, моя таковой получилась.