2016-01-29 5 views
1

Я знаю, что сервер нуждается в самозаверяющем ЦС. Но как я могу сгенерировать CA, и где я могу его заставить заставить PowerShell 2.0 работать? И что такое CN?Как включить перенос WinRM HTTPS?

Ниже то, что происходит, когда я запускаю команду winrm quickconfig -transport:https:

WinRM already is set up to receive requests on this machine. 
WSManFault 
Message 
    ProviderFault 
     WSManFault 
      Message 

Error number: -2144108267 0x80338115 
Cannot create a WinRM listener on HTTPS because this machine does not 
have an appropriate certificate. To be used for SSL, a certificate 
must have a CN matching the hostname, be appropriate for 
Server Authentication, and not be expired, revoked, or self-signed.

ответ

3

Если вы не хотите идти в проблему создания полноценного single-tier или two-tier PKI инфраструктуры (которая была бы тема для ServerFault, а не StackOverflow), вы можете договориться с makecert.exe, чтобы создать подписанный с ним самозаписываемый сертификат ЦС и сертификаты хоста.

Создание сертификата CA, как это:

& makecert.exe -pe -r ` 
    -n "CN=TestCA" ` 
    -ss my ` 
    -sr LocalMachine ` 
    -a sha256 ` 
    -sky signature ` 
    "TestCA.cer" 

Затем создать сертификат для хоста:

$cn = if ($env:USERDNSDOMAIN) { 
     "$env:COMPUTERNAME.$env:USERDNSDOMAIN" 
     } else { 
     $env:COMPUTERNAME 
     } 

& makecert.exe -pe ` 
    -n "CN=$cn" ` 
    -ss my ` 
    -sr LocalMachine ` 
    -a sha256 ` 
    -sky exchange ` 
    -eku 1.3.6.1.5.5.7.3.1 ` 
    -in "TestCA" ` 
    -is my ` 
    -ir LocalMachine ` 
    -sp "Microsoft RSA SChannel Cryptographic Provider" ` 
    -sy 12 ` 
    "$cn.cer" 

Си-Эн (Common Name) является предметом вашего сертификата и сертификатов хозяевах должен соответствовать полному домену компьютера.

Если вы хотите создать сертификаты хоста для других хостов, кроме вашего локального компьютера, вам необходимо установить $cn на имя/FQDN другого компьютера. Для того, чтобы получить сертификат и закрытый ключ к компьютеру назначения export как из хранилища сертификатов (<serial> это серийный номер сертификата):

& certutil.exe -exportPFX -f -privatekey -p "password" "<serial>" computer.pfx 

Копия computer.pfx на компьютер, для которого генерируется сертификат и импортировать его как это:

& certutil.exe -importPFX -f -privatekey C:\path\to\computer.pfx 

Вам будет предложено указать пароль, указанный вами при экспорте сертификата.

На всех машинах, которые должны использовать сертификаты, подписанные вашим TestCA нужно импортировать TestCA.cer под Доверенные корневые центры сертификации для учетной записи компьютера.

& certutil.exe -f -addstore ca C:\path\to\TestCA.cer 

makecert.exe Обратите внимание, что не доступна в качестве отдельной загрузки больше, но вы можете получить его от Windows SDK (скачать файл ISO и запустите программу установки SDK Tools из вложенной \setup\WinSDKTools).

Обратите также внимание, что использование самодельного СА, такого как , сильно обескуражено для любой производственной среды.

+0

thank u. Я хочу, чтобы сервер мог размещаться из любого места в Интернете. поэтому мне нужен CA, теперь я делаю CA. но где я могу его поместить? Команда следующая: makecert -n «CN = PowerShell_test» -a sha1 -eku 1.3.6.1.5.5.7.3.3 -r - sv xxl.pvk xxl.cer -ss xxl -sr localMachine и есть xxl.cer в моей папке?где я могу положить его на работу https и почему я набираю «Enter», но эти комментарии не начинаются со следующей строки? thank u – rookie

+0

В принципе, СА - это не что иное, как самоподписанный SSL-ключ и сертификат. Ключ используется для подписания других сертификатов, а сертификат используется для проверки сертификатов, подписанных с ключом. Вот почему вам нужно развернуть сертификат CA ('TestCA.cer' в моем примере) на каждый хост, где вы хотите использовать сертификат, подписанный этим центром сертификации. –

+0

Какой кошмар для базового варианта использования WinRM. –

Смежные вопросы