Экспорт и импорт сертификата Windows
Добрый день! Уважаемые читатели и гости одного из крупнейших IT блогов рунета Pyatilistnik.org. В прошлый раз мы с вами успешно настроили сеть на CentOS 7.6, двигаемся вперед. В сегодняшней публикации я вам хочу продемонстрировать, как вы можете выполнить экспорт сертификата или импорт сертификата из хранилища Windows. Уверен, что вы сами с легкостью можете найти кучу разных сценариев при которых вы можете использовать мою инструкцию.
Примеры сценариев при импорте и экспорте сертификата
Если вы мой постоянный читатель, то вам уже должны быть знакомы понятие SSL сертификата, его виды и назначение. Сейчас уже сложно себе представить работу юридических лиц, ИП и обычных граждан без сертификатов и ЭЦП. Многие программы используют их для шифрования трафика, например при документообороте или при доступе к сервису, очень частый пример, это кабинет клиент-банка.
В большинстве случаев у людей на компьютере установлена операционная система Windows, она не идеальна и бывают частые случаи ее выхода из строя. При таком раскладе у вас легко могла возникать ситуация по восстановлению вашего сертификата из хранилища Windows, или при обновлении вашего компьютера на более новый, где так же производили перенос сертификатов, я приводил такой пример для КриптоПРО. Переходим к практике.
Импорт сертификата в Windows
Ранее я вам рассказывал, где в операционной системе Windows хранятся сертификаты и вы помните, что там есть два глобальных контейнера:
- Первый, это для компьютера
- Второй для пользователя
Я в своем примере буду импортировать сертификат в раздел локального компьютера, в личное расположение. И так у меня есть Wildcard сертификат имеющий формат PFX архива. Существует два метода импорта сертификата в операционных системах Windows:
- Через графический мастер импорта сертификатов
- Через использование утилиты командной строки certutil
Давайте начнем с самого простого метода, через графический интерфейс. У меня есть файл pyatilistnik.pfx. Я щелкаю по нему двойным кликом и запускаю мастер импорта сертификатов.
Я указываю, что буду копировать сертификат в хранилище локального компьютера, нажимаю далее.
Мастер импорта сертификата попытается удостовериться, какой файл вы будите копировать, поддерживаются форматы PFX, P12, p7b и SST.
На следующем этапе вы указываете пароль от данного сертификата, при желании можете поставить галку "Пометить этот ключ как экспортируемый, что позволит сохранить резервную копию ключа и перемещать его". Данная галка полезна при использовании сертификата их реестра, ну и потом можно будет его при необходимости перенести, но это МЕНЕЕ БЕЗОПАСНО, не не смертельно если есть пароль.
Далее вы выбираете куда вы будите помещать сертификат при импорте, я выберу ручное помещение в личное хранилище.
Нажимаем далее.
Завершаем мастер импорта сертификатов.
В результате импортирование сертификата успешно выполнено.
Давайте удостоверимся, что у вас появился ваш сертификат, тут вы можете воспользоваться оснасткой mmc "сертификаты" или же утилитой certutil. Я покажу оба варианта, откройте командную строку или оболочку PowerShell и выполните:
В итоге у вас будет список всех ваших сертификатов, если знаете его CN, то можете отфильтровать по findstr. Второй вариант, это в окне выполнить открыть mmc и добавить там оснастку "Сертификаты" (Подробнее по ссылке выше про mmc).
В контейнере "Личное - Сертификаты" я вижу свой Wildcard SSL сертификат, и по значку я вижу, что в нем есть закрытый ключ. Я его удалю, чтобы импортировать его с помощью certutil.
Для импорта сертификата вам нужно через команду cd перейти в каталог, где хранится pfx архив. В моем примере, это каталог C:\Temp\wildcard.
Далее импортируем наш сертификат. пишем команду:
Где -p, это пароль, а pyatilistnik.pfx имя файла.
Все с копированием сертификата в ваше локальное хранилище мы разобрались, переходим к экспорту.
Экспорт сертификата Windows
Давайте теперь проделаем процедуру обратного порядка. Первым делом я произведу экспорт сертификата из графического интерфейса. В оснастке "Сертификаты" найдите нужный вам. Щелкните по нему правым кликом и выберите "Все задачи - Экспорт'.
У вас откроется окно мастера экспорта сертификатов, нажимаем далее.
Если есть возможно и закрытый ключ экспортируемый, то можете выставить режим "Да, экспортировать закрытый ключ".
Вам будет предложено выбрать формат выгрузки, тут могут быть расширения cer DER, cer Base-64, p7b, PFX. Так как у меня сертификат Wildcard, то я могу выгрузить в "Файл обмена личной информацией -PKCS # 12(.PFX)". Если вы планируете после экспорта удалить из личного хранилища ваш сертификат, то можете тут выставить соответствующую галку. Так же может выгрузить все расширения, после чего нажимаем далее.
Задаем обязательный пароль два раза, лучше сразу задавать стойкий пароль.
В следующем окне мастера по экспорту сертификатов, вы задаете его имя и где он будет сохранен.
Нажимаем далее.
Завершаем процедуру экспорта pfx архива из нашего хранилища сертификатов.
Экспорт успешно выполнен.
Теперь давайте произведем экспорт с помощью утилиты certutil. Перед тем, как это сделать, нам необходимо вычислить серийный номер сертификата.Для этого выполните команду:
Находим поле "Серийный номер" у нужного сертификата и копируем его.
Далее пишем команду для экспорта сертификата;
Все успешно отработало.
На выходе я получил файл export-cert-2.pfx. Открыть архив с сертификатом вы легко сможете через утилиту keytool или Key Store Explorer.
На этом у меня все, мы с вами разобрали алгоритм и методы по импортированию и экспортированию сертификатов в операционной системе Windows. остались вопросы или пожелания, то я жду их в комментариях. С вами был Иван Семин, автор и создатель IT портала Pyatilistnik.org.
Душевно благодарю!
@chcp 1251
@echo off
setlocal
:start
set «exec=wmic useraccount where name=»%username%» get sid /value»
for /f %%i in (‘ «%exec%» ‘) do 1>nul set «%%i»
echo.
echo. # Export Certificates CryptoPro and SystemCertificates to .Reg Files %systemdrive%\Cert_User\ #
echo. # Экспорт сертификатов активного пользователя (CryptoPro)
echo.
echo. 1 -Export Certificates CryptoPro 3.6 — 5.0 (x32-64)
echo. 2 -Export Certificates SystemCertificates-
echo. 3 -Export Files Certificates %userprofile%-
echo. 4 -Exit-
echo.
set /p choice= Enter the Number (Введите номер пункта):
rem if not ‘%choice%’==» set choice=%choice:~0;1%
if ‘%choice%’==’1’ goto 1
if ‘%choice%’==’2’ goto 2
if ‘%choice%’==’3’ goto 3
if ‘%choice%’==’4’ goto 4
if not ‘%choice%’==» echo «%choice%» Bad points
cls
goto start
:1
mkdir %systemdrive%\Cert_User\
reg export «HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Crypto Pro\Settings\Users\%sid%\Keys» %systemdrive%\Cert_User\%username%_Cert_CryptoPro_x64.reg /y
reg export «HKEY_LOCAL_MACHINE\SOFTWARE\Crypto Pro\Settings\Users\%sid%\Keys» %systemdrive%\Cert_User\%username%_Cert_CryptoPro_x32.reg /y
cls
goto start
:2
mkdir %systemdrive%\Cert_User\SystemCertificates
reg export «HKEY_CURRENT_USER\SOFTWARE\Microsoft\SystemCertificates» %systemdrive%\Cert_User\SystemCertificates\SystemCertificates_USER.reg /y
reg export «HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SystemCertificates» %systemdrive%\Cert_User\SystemCertificates\SystemCertificates_MACHINE_Microsoft.reg /y
reg export «HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\SystemCertificates» %systemdrive%\Cert_User\SystemCertificates\SystemCertificates_MACHINE_Policies.reg /y
reg export «HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\SystemCertificates» %systemdrive%\Cert_User\SystemCertificates\SystemCertificates_MACHINE_WOW6432Node.reg /y
reg export «HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Policies\Microsoft\SystemCertificates» %systemdrive%\Cert_User\SystemCertificates\SystemCertificates_MACHINE_WOW6432NodePolicies.reg /y
reg export «HKEY_USERS\.DEFAULT\Software\Microsoft\SystemCertificates» %systemdrive%\Cert_User\SystemCertificates\SystemCertificates_USERS_DEFAULT.reg /y
reg export «HKEY_USERS\%sid%\SOFTWARE\Microsoft\SystemCertificates» %systemdrive%\Cert_User\SystemCertificates\SystemCertificates_%username%.reg /y
reg export «HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\EnterpriseCertificates» %systemdrive%\Cert_User\SystemCertificates\SystemCertificates_ActiveDirectory.reg /y
cls
goto start
:3
7z.exe a %systemdrive%\Cert_User\SystemCertificatesFiles %userprofile%\AppData\Roaming\Microsoft\SystemCertificates
7z.exe a %systemdrive%\Cert_User\SystemCertificatesFilesCrypto %userprofile%\AppData\Roaming\Microsoft\Crypto
7z.exe a %systemdrive%\Cert_User\SystemCertificatesFilesMachineKeys %ProgramData%\Microsoft\Crypto\RSA\MachineKeys
cls
goto start
:4
exit
Шаги импорт экспорт в статье описаны в неправильном порядке. Правильно начинать с экпорта, потому что мы с начала сохраняем, а уже потом импортируем.