Как создать самоподписанный сертификат в Windows | Windows для системных администраторов

Как создать самоподписанный сертификат в Windows

Большинству администраторов Windows, знакомых с темой PKI, известна утилита MakeCert.exe, с помощью которой можно создать самоподписанный сертификат. Эта утилита включена в состав Microsoft .NET Framework SDK и Microsoft Windows SDK. В Windows 8 и Windows Server 2012 появилась возможность создания самоподписанного сертификата средствами PowerShell 3.0 и выше без использования специальных утилит.

Для создания сапоподписанного сертификата в PowerShell предлагается использовать командлет New-SelfSignedCertificate, входящий в состав модуля PoSh с именем PKI (Public Key Infrastructure):

Список всех командлетов в модуле PKI

Get-Command -Module PKI

Powershell модуль PKI

Примечание. В отличии от утилиты MakeCert, командлет New-SelfSifgnedCertificate позволяет выпустить только SSL сертификат, таким сертификатом не получится подписать код драйвера или приложения.

Самоподписанный сертификат можно использовать в тестовых целях или для обеспечения сертификатами внутренних интранет служб (IIS, Exchange, Web Application Proxy, LDAPS, ADRMS, DirectAccess и т.п.), в тех случая когда по какой-то причине разворачивание инфраструктуры PKI/CA невозможно.

Для создания сертификата нужно указать значения DnsName (DNS имя сервера, имя может быть произвольным и отличаться от имени localhost) и -CertStoreLocation (раздел локального хранилища сертификатов, в который будет помещен сгенерированный сертификат). Командлет можно использовать для создания самоподписанного сертификата в Windows 10 (в нашем примере), Windows 8/8.1 и Windows Server 2012/2012 R2.

Чтобы создать сертификат для DNS имени test.contoso.com и поместить его в список персональных сертификатов компьютера, выполним команду:

New-SelfSignedCertificate -DnsName test.contoso.com -CertStoreLocation cert:\LocalMachine\My

New-SelfSignedCertificate - командлет для создания сертификата

Directory: Microsoft.PowerShell.Security\Certificate::LocalMachine\My
Thumbprint                               Subject
----------                               -------
2779C0490D558B31AAA0CEF2F6EB1A5C2CA83B30 CN=test.contoso.com

Данная команда создаст сертификат и импортирует его в персональное хранилище компьютера. Открыв оснастку certlm.msc, проверим, что в разделе Personal хранилища сертификатов компьютера появился новый сертификат. Самоподписанный сертифкат в разделе личных сертификатов

Примечание. Срок действия такого самоподписанного сертификата ограничивается годом с момента его создания.

Чтобы экспортировать полученный сертификат в файл pfx с паролем нам понадобится его отпечаток (Thumbprint), который нужно скопировать из результатов выполнения команды New-SelfSignedCertificate:

$CertPassword = ConvertTo-SecureString -String “YourPassword” -Force –AsPlainText

Export-PfxCertificate -Cert cert:\LocalMachine\My\2779C0490D558B31AAA0CEF2F6EB1A5C2CA83B30 -FilePath C:\test.pfx -Password $CertPassword

Export-PfxCertificate - экспорт сертификата в файлМожно экспортировать открытый ключ сертификата:

Export-Certificate -Cert Cert:\LocalMachine\My\2779C0490D558B31AAA0CEF2F6EB1A5C2CA83B30 -FilePath C:\testcert.cer

Полученный открытый ключ или сам файл сертификата можно установить на веб-сервер или клиентах домена с помощью GPO (пример установки сертификата на ПК с помощью групповых политик).

Одной из полезных возможностей командлета New-SelfSignedCertificate является возможность создать сертификат с несколькими различными именами Subject Alternative Names (SAN).

Примечание. Если создается сертификат с несколькими именами, первое имя в параметре DnsName будет использоваться в качестве CN (Common Name) сертификата.

К примеру, создадим сертификат, у которого указаны следующие имена:

  • Subject Name (CN): adfs1.contoso.com
  • Subject Alternative Name (DNS): web_gw.contoso.com
  • Subject Alternative Name (DNS): enterprise_reg.contoso.com

Команда создания будет такой:

New-SelfSignedCertificate -DnsName adfs1.contoso.com,web_gw.contoso.com,enterprise_reg.contoso.com -CertStoreLocation cert:\LocalMachine\My

Сертификат на несколько DNS именТакже можно выписать сертификат для всего пространства имен в домене, для этого в качестве имени сервера указывается *.contoso.com.

New-SelfSignedCertificate -certstorelocation cert:\localmachine\my -dnsname *.contoso.com

Еще записи по теме: PowerShell
Понравилась статья? Скажи спасибо и расскажи друзьям!
Назад:
Вперед:
Полные правила комментирования на сайте winitpro.ru. Вопросы, не связанные с содержимым статьи или ее обсуждением удаляются.

Сказать Спасибо! можно на этой странице или (еще лучше) поделиться с друзями ссылкой на понравившуюся статью в любимой социальной сети(специально для этого на сайте присуствуют кнопки популярных соц. сетей).

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

Я не робот( Обязательно отметьте)



MAXCACHE: 0.24MB/0.00183 sec