Создание самоподписанных корневых и клиентских сертификатов с помощью Makecert

Недавно возникла необходимость создания самоподписанных сертификатов для работы с Microsoft Azure. Например, сертификаты могут понадобится при настройке point-to-site VPN, или ADFS.

Существует несколько способов создания самоподписанного сертификата. На мой взгляд, проще всего воспользоваться утилитой makecert из состава Microsoft Visual Studio.

Создание самоподписанного корневого сертификата

Скачайте и установите Microsoft Visual Studio Express 2013 for Windows Desktop (https://www.microsoft.com/en-us/download/details.aspx?id=40769)

Запустите командную строку Visual Studio Express Cross Tools Command Prompt с правами администратораю.

Visual Studio Express Cross Tools Command Prompt
Команда создания корневого сертификата с помощью makecert будет выглядеть таким образом.

makecert -sky exchange -r -n "CN=RootCertificateName" -pe -a sha1 -len 2048 -ss My "RootCertificateName.cer"

Например,

makecert -sky exchange -r -n "CN=VMblog.ru" -pe -a sha1 -len 2048 -ss My "c:\PS\VMblog.ru.cer"

makecert -sky exchange -r -n "CN=RootCertificateName" -pe -a sha1 -len 2048 -ss My "RootCertificateName.cer"
Команда создаст новый корневой сертификат и автоматически установит его в хранилище Personal Certificate store. Файл сертификата *.cer будет сохранен в указанном каталоге и в случае необходимости его можно загрузить в Azure Management Portal.

файл сертификата *.cer
Совет. Создав корневой сертификат, на основе которого могут быть созданы клиентские сертификаты, рекомендуется экспортировать этот сертификат вместе с его закрытым ключом и сохранить где-нибудь в безопасном месте.

Создание самоподписанного клиентского сертификата

Чтобы на основе корневого сертификата создать клиентский, в том же окне командной строки Visual Studio Express выполните команду в формате:

makecert.exe -n "CN=ClientCertificateName" -pe -sky exchange -m 96 -ss My -in "RootCertificateName" -is my -a sha1

Например:

makecert.exe -n "CN=srv1.vmblog.ru" -pe -sky exchange -m 96 -ss My -in "VMblog.ru" -is my -a sha1

makecert.exe -n "CN=ClientCertificateName" -pe -sky exchange -m 96 -ss My -in "RootCertificateName" -is my -a sha1

В результате в хранилище Personal Certificate store появится новый клиентский сертификат с CN srv1.vmblog.ru.

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

Экспорт клиентского сертификата

Чтобы экспортировать клиентский сертификат из вашего хранилища Personal Certificate store в файл и установить его на клиентской машине, воспользуйтесь оснасткой управления сертификатами certmgr.msc

хранилище персональных сертификатов Personal Certificate store

Разверните хранилище Personal -> Certificates, выберите нужный сертификат, щелкните по нему ПКМ и выберите All tasks -> Export.

экспорт сертфиката в файл
Экспортируйте сертификат с помощью опции Client Certificate with the private key . На выходе появится файл с расширением .pfx. Не забудьте запомнить и сохранить пароль, который вы установили для этого сертификата.

Наконец, скопируйте .pfx файл на клиентский компьютер и дважды щелкните для его установки. Во время установки оставьте предлагаемое хранилище и укажите пароль для доступа к сертификату.

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

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