Teh Hermit
Trace: • автоматизированный_запрос_к_цс_из_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
Certificates, PKI, ADCS, Microsoft, Windows, PowerShell
Previous Next

Teh Hermit

Table of Contents

  

Microsoft

  Active Directory
  Active Directory Certificate Services
  Active Directory Federation Services
  BitLocker
  Terminal Services
  HYPER-V
  Exchange
  Internet Information Services (IIS)
  Storage Spaces Direct
  WSUS
  Windows Server
  Windows Server Core
  Windows
  Windows Admin Center
  Windows Backup
  Windows Firewall
  Windows 11
  Microsoft Office
  IPAM
  NPS и RADIUS
  Office Online
  Microsoft SQL Server
  Microsoft Endpoint Configuration Manager
  PowerShell
  KMS-активация

Unix-like

  Astra Linux
  Asterisk и FreePBX
  SQUID
  Debian
  CentOS
  Ubuntu Server + Desktop
  pfSense
  PostgreSQL
  SSH
  OpenSSL
  Zabbix

  

Hardware

  Keychron
  WakeOnLan
  Серверы HP
  Серверы SNR
  Настройка планшетов Handheld

  

Networking

  Cisco
  D-Link
  Mikrotik
  Keenetic

  

Other

  1С
  Docker
  DokuWiki
  Ghost Blog
  GoodbyeDPI
  Graylog
  VMWare
  ProxMox
  PrivateBin
  Outline VPN
  Wireguard
  Российская криптография
  Р-Виртуализация
  Kaspersky
  FileZilla ftp-сервер
  Soti MobiControl
  SysInternals
  VeraCrypt
  Non-Sucking Service Manager
  NMAP

     

DevOps

  Git
  Gitlab