Как установить сертификат в реестр через КриптоПРО
Добрый день! Уважаемые читатели и гости крупного 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.
Как видите КриптоПРО, это конвейер, который позволяет легко скопировать сертификат из реестра на флешку или даже дискету, если они еще используются.
А есть какой нибудь еще метод добавления сертификата в криптопро в реестр. Часто в последнее время пользуемся сертификатами и зачастую на терминальном сервере и при обновлении приходится к каждому пользователю подключаться и обновлять через крипто про. Последний раз был написан батник по занесению в реестр данных сертификата и его ключ, но пока вручную не зайдешь через панель управления в крипто про и не произведёшь те же самые действия сертификат системой не виделся…
Была утилита, я спрошу у своих коллег со второй линии
Переносил сертификат через ветку реестра \HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Crypto Pro\Settings\Users\Ваш SID с локальной машины на виртуальную терминалку. У всех пользователей всё прошло отлично. Но у одного сертификаты в крипто про так и не появились. Если заходишь в соответствующую ветку реестра, сертификаты там присутствуют. Но в Крипто про так и не отображаются. В оснастке Сертификаты и Сертификаты пользователя тоже нет. Первое, что приходит в голову — это неверный SID. SID получаю командой whoami/user. Перепроверил раз 10. SID верный. К тому же другие ветки реестра с именем SID недоступны пользователю. В чем может быть причина? Пока единственное решение, которое приходит в голову, сделать нового терминального пользователя.
При копировании, КРИПТОПРО говорит «неэкспортируемые контейнеры», так что скопировать не получается. Надо сниффить трафик между контейнером и криптопро специальной утилитой, а потом вручную собирать контейнер из этого траффика (т.е. собирать комплект ключей header.key, masks.key, primary.key, name.key).