Недавно возникла необходимость создания самоподписанных сертификатов для работы с 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 с правами администратораю.
Команда создания корневого сертификата с помощью 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"
Команда создаст новый корневой сертификат и автоматически установит его в хранилище Personal Certificate store. Файл сертификата *.cer будет сохранен в указанном каталоге и в случае необходимости его можно загрузить в Azure Management Portal.
Совет. Создав корневой сертификат, на основе которого могут быть созданы клиентские сертификаты, рекомендуется экспортировать этот сертификат вместе с его закрытым ключом и сохранить где-нибудь в безопасном месте.
Создание самоподписанного клиентского сертификата
Чтобы на основе корневого сертификата создать клиентский, в том же окне командной строки 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
В результате в хранилище Personal Certificate store появится новый клиентский сертификат с CN srv1.vmblog.ru.
Примечание. Microsoft при работе с VPN подключением «точка-сайт» рекомендует создавать уникальный клиентский сертификат для каждого компьютера, который должен подключаться к к виртуальной сети.
Экспорт клиентского сертификата
Чтобы экспортировать клиентский сертификат из вашего хранилища Personal Certificate store в файл и установить его на клиентской машине, воспользуйтесь оснасткой управления сертификатами certmgr.msc
Разверните хранилище Personal -> Certificates, выберите нужный сертификат, щелкните по нему ПКМ и выберите All tasks -> Export.
Экспортируйте сертификат с помощью опции Client Certificate with the private key . На выходе появится файл с расширением .pfx. Не забудьте запомнить и сохранить пароль, который вы установили для этого сертификата.
Наконец, скопируйте .pfx файл на клиентский компьютер и дважды щелкните для его установки. Во время установки оставьте предлагаемое хранилище и укажите пароль для доступа к сертификату.
1 comment
Фантастика! Всё работает отлично!
ЗЫ: написал прогу для тихой установки DirectX, Visual C++, PhysX и прочего с помощью NSIS.