Ansible winrm_server_cert_validation HTTPS安全性

时间:2017-07-28 19:29:15

标签: powershell ssl https ansible winrm

我在连接到Windows 8.1嵌入式计算机的Linux计算机上使用Ansible。它可以通过HTTPS端口5986连接用户名和密码,但我需要指定选项:
ansible_winrm_server_cert_validation =忽略
ansible文档指定:

  

以下是Python 2.7.9+(或任何较旧的Python)所必需的   在使用时已经向后移植了SSLContext,例如在RHEL7上的Python 2.7.5   默认的WinRM自签名证书:

Windows计算机有一个SSL侦听器,它使用powershell脚本配置了Self-SignedCertificates:
https://github.com/ansible/ansible/blob/devel/examples/scripts/ConfigureRemotingForAnsible.ps1
我的问题是,如果我忽略了服务器证书验证,那是否会破坏HTTPS应该提供的加密?或者服务器证书验证只是一个单独的HTTPS过程?

由于

2 个答案:

答案 0 :(得分:1)

证书验证是一个与加密不同的过程。通讯将被加密。您可以在issues with self-signed certificates上阅读更多内容,但是高级别是您删除Ansible的任何方式来验证连接另一端的确切位置,并向HTTPS通常保护您的中间攻击中的人开放自己从

答案 1 :(得分:0)

是的,如果您按照default Ansible config for WinRM中的建议忽略证书验证,则您的连接不安全 - 有人可以使用HTTPS连接中的中间人(MITM)攻击来欺骗目标服务器。 (Ansible文档中确实应该有安全警告。)

最好的替代方案似乎是NTLM / Negotiate身份验证,而不是HTTPS,从而无需SSL证书。您的Ansible控制机器需要能够作为Windows用户通过NTLM进行身份验证,就像使用SMB文件共享一样。

您需要pywinrm 0.2.0 or higher才能获得NTLM / Negotiate支持。

有用的链接