Winrm HTTPS

生成自签名证书

New-SelfSignedCertificate -Subject $(hostname)

默认会生成到这里

winrm 查看帮助

winrm 创建listener

 winrm create winrm/config/Listener?Address=*+Transport=HTTPS @{Hostname="HOST";CertificateThumbprint="XXXXXXXXXX"}

对应的将HOST和XXXXXXXXXX修改为hostname和证书指纹

wirm create winrm/config/Listener?Address=*+Transport=HTTPS @{Hostname="DESKTOP-UD1AULQ";CertificateThumbprint="9E0E29F0FEC5424121E2309682F779BB99130951"

winrm 查看

winrm enumerate winrm/config/Listener

winrm 连接测试

Enter-PSSession DESKTOP-UD1AULQ -UseSSL

出现这个错误不奇怪。
因为证书是自签名证书,在同一台server测试连接,即作为客户端,又作为服务端。那么客户端应该信任服务端的自签名证书。

把证书从这个目录

copy到信任列表

winrm 再次连接测试

Enter-PSSession DESKTOP-UD1AULQ -UseSSL


成功!

其他命令

我们知道Invoke-Command基于winrm,如果我们删除HTTP的监听,只留下HTTPS的监听
那么我们在调用该命令的时候也需要加上UseSSL参数

说明

以上只是本机测试,实际应用中,组织内部会通过根证书为所有目标server签发证书,然后批量安装证书和配置WINRM。
作为连接的客户端server,只需要添加根证书到本机证书信任列表即可。

ref

https://docs.microsoft.com/en-us/troubleshoot/windows-client/system-management-components/configure-winrm-for-https

posted @ 2022-07-14 23:23  talentzemin  阅读(289)  评论(0编辑  收藏  举报