PowerShell远程会话SSL证书无效问题的进一步诊断方法
诊断PowerShell远程会话证书错误的步骤
确认目标服务器WinRM绑定的证书详情
登录目标服务器(通过RDP),打开PowerShell执行以下命令,查看WinRM使用的证书信息:# 列出WinRM服务的证书映射 winrm get winrm/config/service/certmapping # 筛选本地计算机中用于WinRM的证书 Get-ChildItem -Path Cert:\LocalMachine\My | Where-Object { $_.EnhancedKeyUsageList -match "WinRM" } | Select-Object Subject, Issuer, NotAfter, Thumbprint重点检查证书的
NotAfter(过期时间)和Issuer(颁发机构),确认是否真的过期,以及颁发机构是否为未被信任的实体。验证本地计算机对目标证书的信任状态
从目标服务器导出WinRM证书的公钥文件(.cer格式),在本地计算机的PowerShell中执行以下命令,检查证书状态:Get-Certificate -FilePath "C:\路径\到\服务器证书.cer" | Select-Object Subject, Issuer, NotAfter, Status查看
Status字段,判断证书是否显示Untrusted(未信任)或Expired(已过期)。临时绕过证书验证测试(仅用于诊断)
在本地执行以下命令,临时跳过CA检查、CN检查和吊销检查,确认是否是证书验证导致的连接失败:New-PSSession -ComputerName myserver.westeurope.cloudapp.azure.com -UseSSL -Credential $credential -ErrorAction Stop -SessionOption (New-PSSessionOption -SkipCACheck -SkipCNCheck -SkipRevocationCheck)如果命令执行成功,说明问题确实出在证书验证环节,而非WinRM服务的其他配置错误。
检查目标服务器WinRM监听器的证书绑定
在目标服务器执行以下命令,确认WinRM监听器绑定的证书指纹是否与有效证书一致:winrm enumerate winrm/config/listener查看返回结果中的
CertificateThumbprint字段,对比之前查到的WinRM证书指纹,排查是否存在绑定错误。对比RDP与WinRM使用的证书差异
在目标服务器执行以下命令,查看RDP使用的证书:Get-ChildItem -Path Cert:\LocalMachine\RemoteDesktop | Select-Object Subject, Issuer, NotAfter, Thumbprint将其与WinRM的证书对比,确认两者是否为同一证书——RDP的证书可能已被你手动信任,但WinRM使用的是另一张过期或未被信任的证书。
内容的提问来源于stack exchange,提问作者g.pickardou
相关产品推荐
相关产品推荐

