Я немного запутался в том, как настроить сертификат для моего локального хоста. Мой сценарий такой:
У нас есть два сервера Windows 2012 (не объединенных в домен), и мне нужно удаленно выполнить сценарий PowerShell с одной машины. Это должно быть сделано с использованием IP-адреса другой машины. Я немного попробовал и наконец смог понять, что протокол должен быть HTTPS при использовании IP и требует сертификата сервера.
Чтение такого количества блогов и сообщений сбило меня с толку, и я использовал PowerShell на обоих серверах, на которых я установил самоподписанный сертификат, созданный с помощью PowerShell. Сертификаты называются computername.workgroup и находятся в папке Personal в хранилище сертификатов локального компьютера.
Но когда я пытаюсь winrm qc -transport: https Невозможно создать прослушиватель WinRM на HTTPS, потому что на этом компьютере нет соответствующего сертификата.
Может ли кто-нибудь помочь мне в ближайшее время? Как я могу решить эту ошибку, создав требуемый сертификат? Любая помощь будет очень признательна.
Из https://support.microsoft.com/en-us/kb/2019527 :
Целью настройки WinRM для HTTPS является шифрование данных, передаваемых по сети.
WinRM HTTPS требует для установки сертификата «Проверка подлинности сервера» локального компьютера с CN, совпадающим с именем хоста, срок действия которого не истек, не отозван или не подписан самостоятельно.
Итак, вам нужно установить действительный сертификат на машину первый. Это означает, что он должен исходить от центра сертификации. Не самоподписанный. Это может быть ЦС, который является внутренним для вашей организации, или это может быть глобальный ЦС, такой как Godaddy, Cybertrust или что-то в этом роде.
Это также означает, что использование IP-адреса устройства вместо его имени приведет к не работать, если вы не можете получить сертификат, в котором IP-адрес устройства указан в качестве альтернативного имени субъекта (SAN).
Нет проблем с использованием самозаверяющего сертификата для WinRM https, но при подключении к конечной точке этого компьютера необходимо указать, что клиент (winRM) должен пропускать проверки сертификатов. Вы можете сделать это, используя:
$options = New-PSSessionOption -SkipCACheck -SkipCNCheck -SkipRevocationCheck
а затем настройте сеанс следующим образом:
$session = New-PSSession -UseSSL -SessionOption $options
Я предполагаю, что сертификат, который вы пытаетесь использовать, не содержит закрытого ключа, это должно быть единственным требованием для сертификата.