Закрытые ключи в реестре

Как установить сертификат в реестр через КриптоПРО

Как установить сертификат в реестр через КриптоПРО

Добрый день! Уважаемые читатели и гости крупного IT блога рунета pyatilistnik.org. Продолжаем нашу с вами тему с сертификатами и работе с ними. В прошлый раз я вам подробно рассказал, как получить тестовый сертификат криптопро, посмотрите очень интересная заметка. Согласитесь, что для тестирования вам может потребоваться не один сертификат, а гораздо больше, и очень удобно иметь возможность работать с ними, без привязки к физическим токенам, например, на виртуальных машинах Vmware. Для таких задач, есть возможность поместить сертификаты КриптоПРО в реестр Windows, чем мы с вами и займемся.

Когда нужно копировать сертификаты КриптоПРО в реестр

Существует ряд задач, когда удобно иметь вашу ЭЦП подпись в реестре Windows:

1. При тестировании настроенного окружения для торговых площадок, для входа на которые используется ЭЦП подпись.
2. Когда у вас виртуальная инфраструктура и нет возможности, произвести проброс USB устройств по локальной сети
3. Ситуации, когда КриптоПРО не видит USB токена
4. Ситуации, когда USB ключей очень много и нужно работать одновременно с 5-ю и более ключами, примером может служить программа по сдачи отчетности СБИС

Как скопировать сертификат в реестр КриптоПРО

CryptoPRo позволяет производить установку с копирование закрытого ключа (сертификата) в реестр Windows.

И так, у меня есть USB токен SafeNet, на который я выпустил тестовую ЭЦП, ее я буду переносить вместе с закрытым ключом в реестр Windows. Открываем утилиту CryptoPRO с правами администратора.

Переходите на вкладку «Сервис» и нажимаете «скопировать»

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

В итоге у вас в поле «Имя ключевого контейнера» отобразиться абракадабровое имя.

У вас появится окно с вводом пин-кода от вашего USB токена.

Теперь вам необходимо задать имя для копируемого сертификата в реестр Windows, КриптоПРО благо, это позволяет. Я назвал его «Копия сертификата в реестре (Семин Иван)»

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

На следующем шаге вам предложат установить новый пароль на ваш контейнер с закрытым ключом, советую установить его и желательно посложнее.

Установка закрытого ключа в реестр

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

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

И выберите сертификат из реестра, он будет с тем именем, что вы ему задавали.

После чего производится установка закрытого ключа в реестр, через соответствующую кнопку.

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

Где хранится закрытый ключ в реестре Windows

После процедуры добавления сертификата в реестр КриптоПРО, я бы хотел показать, где вы все это дело можете посмотреть. Ранее я вам рассказывал, о том как добавить оснастку сертификаты. Нас будет интересовать раздел «Сертификаты пользователя — Личное».

Либо вы можете зайти в свойства Internet Explorer на вкладку "Содержание'. Потом перейти в пункт «Сертификаты», где у вас будут отображаться все ваши SSL сертификаты, и те, что КриптоПРО скопировал в реестр операционной системы.

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

Про копирование ЭЦП с закрытыми ключами мы разобрали, теперь ситуация обратная.

Как скопировать эцп из реестра на флешку

Предположим, что у вас стоит задача скопировать контейнер из реестра, так как он уже там, то он экспортируемый, для этого открываем криптопро, «Сервис-Скопировать»

Читайте также:  Изменения айпи адреса в браузере

Выбираете «Обзор» и ваш сертификат из реестра.

Задаете ему новое имя, удобное для себя.

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

Обязательно задайте новый пароль.

Ну и собственно теперь открывайте вашу флешку и лицезрейте перенесенный на него контейнер, он будет состоять из файликов с форматом key.

Как видите КриптоПРО, это конвейер, который позволяет легко скопировать сертификат из реестра на флешку или даже дискету, если они еще используются.

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

Введение

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

Перенести закрытые ключи и сертификаты КриптоПро на другой компьютер можно двумя способами:

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

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

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

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

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

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

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

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

Если получили такую ошибку, то для вас этот способ переноса не подходит. Можно сразу переходить к следующему.

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

Запускаем Internet Explorer, открываем его настройки и переходим на вкладку Содержание. Там нажимаем на Сертификаты.

Выбираем нужный сертификат и нажимаем Экспорт.

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

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

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

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

Читайте также:  Графический планшет wacom видео обзор

В итоге у вас должны получиться 2 файла с расширениями:

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

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

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

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

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

В данном случай zerox — имя учетной записи, для которой узнаем SID.

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

где S-1−5−21−4126079715—2548991747—1835893097—1000 — SID пользователя, у которого копируем сертификаты. Выбираем папку Keys и экспортируем ее.

Сохраняем ветку реестра в файл. В ней хранятся закрытые ключи.

Теперь нам нужно скопировать сразу все сертификаты. В Windows 7, 8 и 10 они живут в директории — C:UserszeroxAppDataRoamingMicrosoftSystemCertificatesMy. Сохраняйте эту директорию.

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

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

Я не раз пользовался этим методом, на текущий момент он 100% рабочий. Написал статью,чтобы помочь остальным, так как сам не видел в интернете подробной и понятной с первого раза статьи на эту тему. Надеюсь, моя таковой получилась.

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

Где хранится ЭЦП на компьютере

Найти сертификат ключа электронной подписи на ОС Windows Vista и выше можно по адресу: C:Users/ПОЛЬЗОВАТЕЛЬ/App/Data/Roaming/MicrosoftSystem/Certificates. Где «‎Пользователь» — это название учетной записи ПК. В целях безопасности система сохраняет в данной папке только открытый, т.е. доступный всем, ключ ЭЦП. Закрытый ключ не копируется на жесткий диск и хранится на токене. Используется он для генерации открытых ключей.

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

Сертификат ЭЦП имеет формат .cer или .csr, и занимает несколько КВ памяти. В операционных системах MacOS и Linux формат файла не меняется, поскольку является единым для использования на территории РФ.

Как посмотреть сертификат ЭЦП

Посмотреть установленные сертификаты можно при помощи Internet Explorer, Certmgr, консоль управления или КриптоПро. Пользоваться другими компьютерными программами не рекомендуется: они могут иметь встроенную команду отправки ключа ЭЦП на сторонний сервер, что приведет к компрометации подписи и невозможности ее использования.

Через КриптоПро

Как найти сертификат ЭЦП на компьютере при помощи КриптоПро:

  1. открыть «‎Пуск»;
  2. через вкладку «‎Все программы» перейти в «‎КриптоПро»;
  3. выбрать вкладку «‎Сертификаты».

Этим способом могут воспользоваться пользователи или администраторы ПК (если пользователю будет отказано в доступе, необходимо дополнительно запросить права администратора). В открывшемся окне будет список всех сертификатов, установленных на данном ПК. В содержащем сертификаты хранилище, можно посмотреть информацию по каждому, скопировать контейнер закрытых ключей КриптоПро на другой компьютер, внешний носитель или удалить недействительный ключ ЭЦП.

Через Certmgr

Найти файл сертификата можно и при помощи встроенного менеджера, который присутствует во всех ОС Windows. Через него можно не только посмотреть все личные сертификаты, но и сертификаты УЦ и партнеров Microsoft.

Читайте также:  Давление газа в плите бытовой

Метод может использоваться только администратором ПК. Для просмотра нужно:

  1. открыть «‎Пуск»;
  2. ввести команду certmgr.msc в строку поиска и нажать Enter;
  3. в левой колонке открывшегося окна будет список личных и корневых сертификатов.

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

Через Internet Explorer

Интернет-браузер IE входит в комплектацию всех ОС семейства Windows XP и выше и позволяет также найти сертификаты ЭЦП на компьютере. Для просмотра нужно:

  1. запустить браузер;
  2. через «‎Меню» перейти в «‎Свойства браузера»;
  3. в новом окне выбрать вкладку «‎Содержание»;
  4. выбрать «‎Сертификаты».

Далее откроется окно с перечнем всех сертификатов, установленных пользователем и сторонними поставщиками ПО. В данном меню возможен перенос ключей и сертификатов на внешний носитель, удаление открытых ключей. Удаление корневых сертификатов УЦ через меню IE невозможно.

Через консоль управления

Просмотр сертификатов в ОС Windows через консоль управления запускается в несколько этапов:

  1. пользователь открывает командную строку;
  2. вводит команду mmc и нажимает Enter;
  3. нажимает на «‎Файл» и «‎Добавить/удалить оснастку cryptopro»;
  4. выбирает последовательно «‎Добавить» и «Добавить изолированную оснастку»;
  5. выбирает «Сертификаты».

Дополнительно можно просмотреть ключи ЭЦП по конкретной учетной записи. Способ также доступен только пользователям с правами администратора ПК. Через консоль можно не только просматривать информация, но и удалять, копировать, добавлять контейнеры с ключами ЭЦП. Неудобство метода в том, что все команды необходимо вводить вручную. Обычны работа через консоль осуществляется на windows server для настройки прав доступа всех пользователей.

Где в реестре хранится ЭЦП

Иногда реестр используется как ключевой носитель, т.е. он подходит для импорта и экспорта сертификатов. Где находится сертификат ЭЦП зависит от битности системы:

  • для 32-битной ОС путь выглядит так: HKEY_LOCAL_MACHINESOFTWARECryptoProSettings Users(идентификатор пользователя)Keys(Название контейнера)
  • для 64-битной ОС путь к ключам такой: HKEY_LOCAL_MACHINESOFTWAREWow6432NodeCrypto ProSettings USERS(идентификатор пользователя)Keys(Название хранилища)
  • реже ключи электронной подписи можно найти тут: HKEY_USERSS-1−5−21-_ClassesVirtualStoreMACHINESOFTWARE [Wow6432Node]Crypto ProSettingsUSERSS-1−5−21-Keys

SID — это идентификатор пользователя, который идентифицирует данную учетную запись. Узнать его можно через командную строку и команду WHOAMI/USER.

Где хранится сертификат ЭЦП в ОС Windows XP

К базовым компонентам ОС Windows XP относятся службы сертификации, а XP Professional уже поддерживает многоуровневые иерархии центра сертификации (ЦС) как с изолированными и интерактивными ЦС, так и сети ЦС с доверительными перекрестными отношениями.

Открытые ключи ЭЦП Windows XP хранит в личном хранилище, а т.к. они представляют собой общедоступную информацию, то хранятся в виде открытого текста. Сертификаты пользователя находятся по адресу:

Documents and Settings ApplicationDataMicrosoft SystemCertificatesMyCertificates. Они автоматически вносятся в локальный реестр при каждом входе в систему. Если профиль перемещаемый, то открытые ключи хранятся обычно не на ПК, а следуют за пользователем при каждом входе в систему с внешнего носителя.

Такие поставщики услуг криптографии, как Enchanced CSP и Base CSP хранят закрытые ключи электронной подписи в папке %SystemRoot%Documents and Settings Application DataMicrosoftCryptoRSA. Если профиль перемещаемый, то они расположены в папке RSA на контроллере домена. В этом случае на ПК они загружаются только на время работы профиля. Все файлы в данной папке шифруются случайным симметричным ключом автоматически. Основной ключ пользователя имеет длину в 64 символа и создается проверенным генератором случайных чисел.

Где хранится ЭЦП в системах Linux

В Linux системах список контейнеров с закрытыми ключами можно найти при помощи утилиты csptest. Находится она в директории: /opt/cprocsp/bin/ .

Список контейнеров компьютера: csptest -keyset -enum_cont -verifycontext -fqcn -machinekeys. Список контейнеров пользователя: csptest -keyset -enum_cont -verifycontext -fqcn. В списках имена контейнеров даются в виде, понятном для бинарных утилит, входящих в состав дистрибутива CSP.

Закрытые ключи хранятся в хранилище HDImageStore на жестком диске, и доступны они и для CSP, и для JCP.

Просмотреть список ключей электронной подписи на ОС Windows может только пользователь с правами администратора. Обычно ключи хранятся в системных папках и имеют расширение .cer или .csr. Чтобы посмотреть список, удалить ненужные элементы или скопировать их на внешний носитель можно воспользоваться программой КриптоПро, браузером Internet Explorer, консолью управления или специальной утилитой certmgr. В Windows XP открытые и закрытые ключи хранятся в разных папках, а закрытые дополнительно шифруются паролем, состоящим из комбинации случайных чисел. Системы Linux хранят все сертификаты в отдельной директории, а пусть к ним задается вручную при помощи команд.