Powershell HTTPS не работает

Я немного запутался, как настроить сертификат для моего локального хоста. Мой сценарий похож на:

У нас есть два сервера Windows 2012 (не объединенные в домен), и мне нужно выполнить скрипт powershell удаленно с одного компьютера. Это должно быть сделано с использованием IP-адреса другого компьютера. Я попробовал немного и, наконец, мог знать, что протокол должен быть HTTPS при использовании IP, и он требует сертификата сервера.

Чтение очень многих блогов и постов заставило меня запутаться и использовать powershell на обоих серверах, на которых я установил самозаверяющий сертификат, созданный с использованием powershell. Сертификаты называются computername.workgroup и находятся в разделе "Личные" в хранилище сертификатов локального компьютера.

Но когда я пытаюсь запустить winrm qc -transport:https Невозможно создать прослушиватель WinRM на HTTPS, поскольку у этого компьютера нет соответствующего сертификата.

Может кто-нибудь помочь мне как можно скорее? Как я могу решить эту ошибку, создав необходимый сертификат.? Любая помощь будет очень признательна.

2 ответа

Решение

С 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

Я предполагаю, что сертификат, который вы пытаетесь использовать, не содержит закрытого ключа, это должно быть единственным требованием для сертификата.

Другие вопросы по тегам