我期望在服务器之间使用CredSSP来解决双跳问题时,在我们的所有服务器上启用WinRM HTTPS侦听器以保证安全通信。
设置这是好的 ,我们有来自内部CA的CN适当的证书,所以听众的初始设置是好的,并且工作良好。 这些证书唯一的有效期只有一年,所以一旦到期,我们需要重新configuration每台服务器上的侦听器,因为服务器证书的自动注册不会修改WinRMconfiguration中的证书指纹。
有没有人遇到这个问题很好的解决scheme?
您通常会使用Set-WSManQuickConfig -UseSSL
命令在WinRM服务上configurationSSL证书。 或者,您可以手动使用Set-Item
在WinRM服务上configuration指纹。 看下面的例子。
Set-Location -Path WSMan:\localhost\Service; Set-Item -Path .\CertificateThumbprint -Value 'THUMBPRINT';
注 :确保您正在部署最新版本的Windows Management Framework核心(包括PowerShell)。 我最近遇到了一个客户的问题,即Set-WSManQuickConfig
cmdlet在证书存储区中没有正确识别一个有效的SSL证书。
最近我写了一个简短的脚本来做同样的事情,你正在努力完成,下面是相关的部分。 请注意,最后你会得到一个错误,因为当你正在等待Restart-Service命令的结果时,Invoke-Command将重置WinRM服务。
$yourCred = Get-Credential domain\account $yourServer = "your.server.fqdn" $LatestThumb = Invoke-Command -ComputerName $yourServer ` -Credential $yourCred ` -ScriptBlock { Get-ChildItem -Path Cert:\LocalMachine\My | where {$_.subject -match "CN=$yourServer"} Sort-Object -Property NotAfter | Select-Object -Last 1 -ExpandProperty Thumbprint } Set-WSManInstance -ResourceURI winrm/config/Listener ` -SelectorSet @{Address="*";Transport="HTTPS"} ` -ComputerName $yourServer ` -Credential $yourCred ` -ValueSet @{CertificateThumbprint=$LatestThumb} Invoke-Command -ComputerName $yourServer ` -Credential $yourCred ` -ScriptBlock { Restart-Service -Force -Name WinRM }
这是运行在服务器2008 R2与Posh v3。 我敢打赌,它对付Server 2012,但它可能需要一些工作的v2。