Экспорт и импорт сертификата Windows

Обновлено 09.03.2022

ssl logoДобрый день! Уважаемые читатели и гости одного из крупнейших IT блогов рунета Pyatilistnik.org. В прошлый раз мы с вами успешно настроили сеть на CentOS 7.6, двигаемся вперед. В сегодняшней публикации я вам хочу продемонстрировать, как вы можете выполнить экспорт сертификата или импорт сертификата из хранилища Windows. Уверен, что вы сами с легкостью можете найти кучу разных сценариев при которых вы можете использовать мою инструкцию.

Примеры сценариев при импорте и экспорте сертификата

Если вы мой постоянный читатель, то вам уже должны быть знакомы понятие SSL сертификата, его виды и назначение. Сейчас уже сложно себе представить работу юридических лиц, ИП и обычных граждан без сертификатов и ЭЦП. Многие программы используют их для шифрования трафика, например при документообороте или при доступе к сервису, очень частый пример, это кабинет клиент-банка.

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

Импорт сертификата в Windows

Ранее я вам рассказывал, где в операционной системе Windows хранятся сертификаты и вы помните, что там есть два глобальных контейнера:

  1. Первый, это для компьютера
  2. Второй для пользователя

Я в своем примере буду импортировать сертификат в раздел локального компьютера, в личное расположение. И так у меня есть Wildcard сертификат имеющий формат PFX архива. Существует два метода импорта сертификата в операционных системах Windows:

  1. Через графический мастер импорта сертификатов
  2. Через использование утилиты командной строки certutil

Давайте начнем с самого простого метода, через графический интерфейс. У меня есть файл pyatilistnik.pfx. Я щелкаю по нему двойным кликом и запускаю мастер импорта сертификатов.

запускаю мастер импорта сертификатов

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

выбор локального компьютера в мастере импорта сертификата

Мастер импорта сертификата попытается удостовериться, какой файл вы будите копировать, поддерживаются форматы PFX, P12, p7b и SST.

Поддерживаемые форматы PFX, P12, p7b и SST при импорте сертификата

На следующем этапе вы указываете пароль от данного сертификата, при желании можете поставить галку "Пометить этот ключ как экспортируемый, что позволит сохранить резервную копию ключа и перемещать его". Данная галка полезна при использовании сертификата их реестра, ну и потом можно будет его при необходимости перенести, но это МЕНЕЕ БЕЗОПАСНО, не не смертельно если есть пароль.

Пометить этот ключ как экспортируемый

Далее вы выбираете куда вы будите помещать сертификат при импорте, я выберу ручное помещение в личное хранилище.

выбор контейнера в хранилище при Импорте сертификата в Windows

Нажимаем далее.

Импорт сертификата в Windows

Завершаем мастер импорта сертификатов.

Завершаем мастер импорта сертификатов

В результате импортирование сертификата успешно выполнено.

 импортирование сертификата успешно выполнено

Давайте удостоверимся, что у вас появился ваш сертификат, тут вы можете воспользоваться оснасткой mmc "сертификаты" или же утилитой certutil. Я покажу оба варианта, откройте командную строку или оболочку PowerShell и выполните:

certutil -store -v My

certutil просмотр импортированного сертификата

В итоге у вас будет список всех ваших сертификатов, если знаете его CN, то можете отфильтровать по findstr. Второй вариант, это в окне выполнить открыть mmc и добавить там оснастку "Сертификаты" (Подробнее по ссылке выше про mmc).

Импорт сертификата в Windows

В контейнере "Личное - Сертификаты" я вижу свой Wildcard SSL сертификат, и по значку я вижу, что в нем есть закрытый ключ. Я его удалю, чтобы импортировать его с помощью certutil.

Личное - Сертификаты

Для импорта сертификата вам нужно через команду cd перейти в каталог, где хранится pfx архив. В моем примере, это каталог C:\Temp\wildcard.

cd C:\Temp\wildcard

Далее импортируем наш сертификат. пишем команду:

certutil -importPFX -p "12345678" my pyatilistnik.pfx

Где -p, это пароль, а pyatilistnik.pfx имя файла.

certutil Импорт сертификата в Windows

Все с копированием сертификата в ваше локальное хранилище мы разобрались, переходим к экспорту.

Экспорт сертификата Windows

Давайте теперь проделаем процедуру обратного порядка. Первым делом я произведу экспорт сертификата из графического интерфейса. В оснастке "Сертификаты" найдите нужный вам. Щелкните по нему правым кликом и выберите "Все задачи - Экспорт'.

Экспорт сертификата Windows

У вас откроется окно мастера экспорта сертификатов, нажимаем далее.

мастера экспорта сертификатов

Если есть возможно и закрытый ключ экспортируемый, то можете выставить режим "Да, экспортировать закрытый ключ".

Да, экспортировать закрытый ключ

Вам будет предложено выбрать формат выгрузки, тут могут быть расширения cer DER, cer Base-64, p7b, PFX. Так как у меня сертификат Wildcard, то я могу выгрузить в "Файл обмена личной информацией -PKCS # 12(.PFX)". Если вы планируете после экспорта удалить из личного хранилища ваш сертификат, то можете тут выставить соответствующую галку. Так же может выгрузить все расширения, после чего нажимаем далее.

выбор формата при Экспорте сертификата Windows

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

Установка пароля при Экспорте сертификата Windows

В следующем окне мастера по экспорту сертификатов, вы задаете его имя и где он будет сохранен.

Место сохранения Экспортируемого сертификата Windows

Нажимаем далее.

Экспорт сертификата Windows

Завершаем процедуру экспорта pfx архива из нашего хранилища сертификатов.

Завершаем процедуру экспорта pfx архива из нашего хранилища сертификатов.

Экспорт успешно выполнен.

Экспорт успешно выполнен

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

certutil -store my

Находим поле "Серийный номер" у нужного сертификата и копируем его.

Серийный номер при Экспорте сертификата Windows

Далее пишем команду для экспорта сертификата;

certutil -exportPFX -p "12345678" my 790000fa279f2bd96421c6e2bc00010000fa27 export-cert-2.pfx

Все успешно отработало.

Экспорт сертификата Windows

На выходе я получил файл export-cert-2.pfx. Открыть архив с сертификатом вы легко сможете через утилиту keytool или Key Store Explorer.

Список экспортированных сертификатов

На этом у меня все, мы с вами разобрали алгоритм и методы по импортированию и экспортированию сертификатов в операционной системе Windows. остались вопросы или пожелания, то я жду их в комментариях. С вами был Иван Семин, автор и создатель IT портала Pyatilistnik.org.

Автор - Сёмин Иван

2 Responses to Экспорт и импорт сертификата Windows

  1. Вовчик Путкин:

    Душевно благодарю!

  2. Товарищ Гестапо:

    @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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *