Powershell HTTPS não funciona

1

Estou um pouco confuso sobre como configurar o certificado para meu host local. Meu cenário é como:

Temos dois servidores Windows 2012 (não unidos em um domínio) e eu preciso executar um script PowerShell remotamente de uma máquina. Isso tem que ser feito usando o IP da outra máquina. Eu tentei um pouco e pude finalmente saber que o protocolo deve ser HTTPS ao usar IP e requer um certificado de servidor.

A leitura de tantos blogs e posts me deixou confuso e usando o powershell em ambos os servidores. Eu instalei o certificado auto-assinado criado usando o powershell. Os certs são nomeados como computername.workgroup e estão localizados em Personal no armazenamento de certificados do computador local.

Mas quando eu tento winrm qc -transport: https Não é possível criar um ouvinte do WinRM em HTTPS porque esta máquina não possui um certificado apropriado.

Alguém por favor pode me ajudar o mais cedo possível? Como posso resolver esse erro, criando o certificado necessário? Qualquer ajuda seria muito apreciada.

    
por serverstackqns 24.03.2015 / 11:24

2 respostas

2

Do link :

The purpose of configuring WinRM for HTTPS is to encrypt the data being sent across the wire.

WinRM HTTPS requires a local computer "Server Authentication" certificate with a CN matching the hostname, that is not expired, revoked, or self-signed to be installed.

Por isso, primeiro você precisa instalar um certificado válido na máquina. Isso significa que ele precisa vir de uma autoridade de certificação. Não auto-assinado. Isso pode ser uma autoridade de certificação interna da sua organização ou uma CA global como a GoDaddy ou a Cybertrust ou algo assim.

Isso também significa que o uso do endereço IP da máquina em vez de seu nome não funcionará, a menos que você possa obter um certificado que tenha o endereço IP da máquina como um Nome alternativo de assunto (SAN.)

    
por 24.03.2015 / 16:59
0

Não há problema em usar um certificado auto-assinado para o WinRM https, mas ao conectar-se ao terminal do computador, é necessário especificar que o cliente (winRM) deve ignorar as verificações de certificação. Você pode fazer isso usando:

$options = New-PSSessionOption -SkipCACheck -SkipCNCheck -SkipRevocationCheck

e, em seguida, configure a sessão assim:

$session = New-PSSession -UseSSL -SessionOption $options

Suponho que o certificado que você está tentando usar não contenha uma chave privada, que deve ser o único requisito para o certificado.

    
por 25.03.2015 / 13:50