Linux服务器连接Windows WinRM服务出现openssl证书错误如何解决
WinRM服务端证书Linux侧配置步骤
报错原因说明
unable to verify the first certificate 是因为Linux系统默认不信任Windows WinRM监听器使用的证书的签发机构,你之前测试时额外添加的-cert、-key参数为双向TLS认证场景专用,常规账号密码认证的WinRM场景无需配置,多余参数会导致握手异常。
前置操作:导出Windows侧证书
在Windows服务器上导出WinRM监听器使用的证书的公钥部分,选择Base64编码的X.509(.CER)格式,保存为winrm-ca.crt文件,传输到Linux服务器上。如果WinRM用的是自签名证书,直接导出证书本身即可;如果是域CA签发的证书,导出域根CA证书即可。
Linux侧配置方案
方案1:仅当前用户/单次命令生效(无需root权限)
- 创建用户专属证书存放目录:
mkdir -p ~/.certs - 将导出的
winrm-ca.crt上传到该目录 - openssl测试命令(无需多余参数):
openssl s_client -CAfile ~/.certs/winrm-ca.crt -connect 10.7.147.210:5986 - 若使用pywinrm等客户端,连接时指定
ca_trust_path = "~/.certs/winrm-ca.crt"参数即可
方案2:系统全局信任(需root权限,所有程序生效)
Debian/Ubuntu 系列操作系统
- 复制证书到系统信任目录:
sudo cp winrm-ca.crt /usr/local/share/ca-certificates/winrm-ca.crt - 执行证书更新命令:
sudo update-ca-certificates
RHEL/CentOS/Fedora 系列操作系统
- 复制证书到系统信任目录:
sudo cp winrm-ca.crt /etc/pki/ca-trust/source/anchors/winrm-ca.crt - 执行证书更新命令:
sudo update-ca-trust extract
验证方法
配置完成后重新执行openssl连接命令,无证书验证错误即为配置成功,后续所有WinRM客户端均可正常建立连接。
内容的提问来源于stack exchange,提问作者vel
相关产品推荐
相关产品推荐

