WinRM HTTPS 是什么
WinRM 默认监听 5985 走 HTTP,报文本身靠 Kerberos/NTLM 做认证,消息在部分场景下是加密的。跨越不可信网络、跨域或非域环境时,把监听换成 5986 并配一张计算机证书,改用 TLS 承载,就是 HTTPS 模式。切换的关键是顺序:先建好 5986 与防火墙规则并验证,再删掉 5985,否则会把自己锁在外面。
基本信息
| 适用平台 | Windows Server 2012 R2 及以上(管理端 Get-ChildItem WSMan: 需 PowerShell) |
|---|---|
| 端口 | 5985 HTTP、5986 HTTPS |
| 证书要求 | 服务器证书需在“计算机-个人”存储中,含正确 SAN/主机名 |
| 相关服务 | WinRM 服务(winrm)与 Windows 远程管理防火墙规则 |
典型使用场景
- 跨域/工作组机器管理:无 Kerberos 信任时用 TLS + 凭据保证传输安全
- 公网或云上跳板链路:不过 VPN 直连的场景必须加密
- 合规要求加密传输:等保/审计要求远程管理流量可加密可验证
- 多租户或混合云:统一用证书而非域信任降低耦合
- 运维终端到服务器的加固:把 5985 彻底关闭,只留 5986
常用示例
常用示例
# 查看现有监听器与配置
Get-ChildItem WSMan:\localhost\Listener
winrm enumerate winrm/config/listener
# 创建 HTTPS 监听(证书指纹替换为实际值)
New-Item -Path WSMan:\localhost\Listener -Transport HTTPS -Address * -CertificateThumbPrint 'CERTTHUMB' -Force
# 放行 5986 后再验证,最后才删 5985
New-NetFirewallRule -DisplayName 'WinRM HTTPS 5986' -Direction Inbound -Protocol TCP -LocalPort 5986 -Action Allow
Restart-Service WinRM
Test-WSMan -ComputerName web01 -UseSSL两种监听对比
| 项目 | HTTP 5985 | HTTPS 5986 |
|---|---|---|
| 认证 | Kerberos/NTLM | TLS 加密 + 凭据认证 |
| 适用网络 | 可信内网、同域 | 跨域、公网、不可信链路 |
| 服务端代价 | 零配置 | 需证书、防火墙规则与监听配置 |
| 常见故障 | 拒绝访问、防火墙拦截 | 证书不受信任、SAN 不匹配 |
许多内网环境用 HTTP + Kerberos 已经足够安全(域内消息有签名加密),跨网络才需要 HTTPS 证书模式;不要在没验证 5986 可用之前删掉 5985 监听。
客户端信任链同样重要:用 IP 连接而证书只签了主机名时校验会失败。企业环境让内部 CA 签发并把根证书分发到管理端,比在每台客户端加 TrustedHosts 更可控。
排障常用命令
排障常用命令
# 服务端:确认监听器端口、证书与是否启用
winrm get winrm/config/service
winrm get winrm/config/listener
# 客户端:带 SSL 测试连通性(失败会给出证书相关错误)
Test-WSMan -ComputerName web01 -UseSSL -Port 5986
# 用证书指纹核对监听绑定的证书
Get-ChildItem Cert:\LocalMachine\My | Where-Object Thumbprint -eq 'CERTTHUMB'证书续期后监听器不会自动跟着换:指纹变了必须用 Set-Item WSMan:\localhost\Listener\Listener_5986 -CertificateThumbPrint 新指纹 更新,并重启 WinRM 服务。