使用Pywinrm使用SSL
问题描述:
我跟着马特Wrock的非常有益的指导连接:了解和排除WinRM的连接和认证, (http://www.hurryupandwait.io/blog/understanding-and-troubleshooting-winrm-connection-and-authentication-a-thrill-seekers-guide-to-adventure),我是能够建立我的远程机器上,我使用验证的SSL连接:使用Pywinrm使用SSL
Test-WSMan -ComputerName "My DNS" -UseSSL
...它返回了一个非错误消息。而且我还可以从PowerShell连接:
Enter-PSSession -ComputerName "My DNS" -Credential $cred -UseSSL
然而,当我运行下面的Python代码:
import winrm
s = winrm.Session('My DNS', auth=('Remote Username', 'Remote Password'), transport='ssl')
r = s.run_cmd('ipconfig', ['/all'])
...我收到收到以下错误代码: winrm.exceptions.WinRMTransportError: 500 WinRMTransport。 [SSL:CERTIFICATE_VERIFY_FAILED]证书验证失败(_ssl.c:590)
证书验证失败错误使我认为我不正确地配置SSL配置;不过,我似乎可以从Powershell进行连接。
有人可以告诉我我做错了什么或如何正确连接使用ssl?
感谢您的时间
答
在pywinrm版本中发现问题。
使用python版本2.7.10和pywinrm版本(0.1.1)。它工作正常,没有任何错误。
最新版本强制验证SSL证书,即使我们把异常处理程序忽略了脚本中的证书。
双重检查自签名证书过期状态,如果过期,则创建新的自签名证书并将其复制到受信任的根证书颁发机构证书存储区。 – Ashick