使用IP地址连接时出现SSL握手错误/ TCP RST,使用主机名连接时连接正常

86次阅读
没有评论

问题描述

在使用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. 检查 EnabledDisabledByDefault 的值。如果 Enabled 的值为 1,而 DisabledByDefault 的值为 0,则可能会导致 Ansible SSL 连接错误。您可以将 DisabledByDefault 的值设置为 1,或者删除 TLS 1.3 键。
3. 保存更改并重新启动远程机器。
请注意,修改注册表可能会对系统产生影响,请确保在进行任何更改之前备份注册表。

参考链接:https://community.tenable.com/s/article/How-to-view-and-change-the-Windows-Registry-Settings-for-the-SSL-TLS-Protocols-on-a-Windows-Host

正文完