автоматизированный_запрос_к_цс_из_powershell

Автоматизированный запрос к ЦС из PowerShell

Иногда нам нужно запросить сертификат у ЦС (в уже существующей PKI) из PowerShell.

К примеру, это может потребоваться, если нам требуется издать сертификат для сервера, работающего на Windows Core. В этом случае, даже если мы подключимся оснасткой управления сертификатами удаленно - там не будет опции request new certificate, а будет возможность только сформировать offline-запрос к ЦС, что не всегда подходит по разным причинам.

В таком случае делаем следующее.

1. Перемещаемся в локальное хранилище

 cd Cert:\LocalMachine\My

2. Создаем запрос к ЦС, используя нужный шаблон

Get-Certificate -Template "DomainControllerKerberos" -CertStoreLocation cert:\LocalMachine\My -Url ldap: -SubjectName CN=dc.domain.local

3. Издаем сертификат в центре сертификации (одобряем запрос).

:!: Файл в таком случае не нужно копировать на сервер, с которого был послан запрос.

4. Смотрим номер запроса, который мы послали на ЦС, используя данный командлет

 Get-ChildItem -Path cert:\LocalMachine\Request\

5. Получаем сертификат с ЦС

$request = Get-ChildItem -Path Cert:\LocalMachine\Request\BD4211189267CDA4B69BAD32EDFCC68319AD41E
Get-Certificate -Request $request

6. Проверяем, что сертификат с закрытым ключом появился там, куда мы его и запрашивали - в хранилище personal локального компьютера.


Экспортировать сертификат с закрытым ключом

$mypwd = ConvertTo-SecureString -String '1234' -Force -AsPlainText
Get-ChildItem -Path Cert:\LocalMachine\My\553D577966D66F90F1EF711ABB40E3C027786FE9 | Export-PfxCertificate -FilePath C:\mypfx.pfx -Password $mypwd

Импортировать сертификат с закрытым ключом

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

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

Set-Location -Path Cert:\LocalMachine\My
$mypwd = Get-Credential -UserName 'Enter password below' -Message 'Enter password below'
Import-PfxCertificate -FilePath C:\certs\cert.pfx -Password $mypwd.password
автоматизированный_запрос_к_цс_из_powershell.txt · Last modified: 2023/06/02 09:36 by jp