问题描述
在使用Ansible管理一些基于AWS的Windows机器时,当使用IP地址作为目标连接时,某些机器上会出现SSL错误。在Wireshark中,看起来服务器发送了TCP RST。但是,当使用主机名或完全限定域名(FQDN)连接时,连接成功。
用户在WSMan端没有看到任何相关的日志。他想知道是否有人在为Ansible设置winrm时遇到过类似问题,并能提供帮助。
解决方案
请注意以下操作注意版本差异及修改前做好备份。
方案1
根据回答1,您可能需要在远程机器上使用ConfigureRemotingForAnsible.ps1
脚本,并使用-ForceNewSSLCert
选项运行该脚本。以下是具体步骤:
1. 下载 ConfigureRemotingForAnsible.ps1
脚本,可以从 这里 下载。
2. 在远程机器上以管理员权限运行 PowerShell。
3. 执行以下命令:
.\ConfigureRemotingForAnsible.ps1 -ForceNewSSLCert
这将使用新的 SSL 证书配置 WinRM,解决 SSL 握手错误的问题。
方案2
如果方案1不起作用,您可以检查远程机器的 TLS1.3 注册表键 Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.3\Server
。以下是具体步骤:
1. 打开注册表编辑器,导航到 Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.3\Server
。
2. 检查 Enabled
和 DisabledByDefault
的值。如果 Enabled
的值为 1,而 DisabledByDefault
的值为 0,则可能会导致 Ansible SSL 连接错误。您可以将 DisabledByDefault
的值设置为 1,或者删除 TLS 1.3
键。
3. 保存更改并重新启动远程机器。
请注意,修改注册表可能会对系统产生影响,请确保在进行任何更改之前备份注册表。