一些从 Windows Server 2019 连接的网站出现奇怪的 SSL 问题

一些从 Windows Server 2019 连接的网站出现奇怪的 SSL 问题

我在一台 WS 2019 机器上遇到了一个非常奇怪的问题。基本上,我们在将 LOB 应用程序连接到他们的云服务时遇到了麻烦。乍一看,问题似乎出在 TLS 协商上,但我不明白它在哪里失败了。

我已经能够将其缩小到单个端点。当尝试连接到https://collabmaintenance.myob.com/使用 IE11(因此使用系统库和 schannel),它会显示“无法安全连接到此站点”错误消息。从同一台机器运行时,Firefox 和 Chrome 连接良好(导致 401 权限被拒绝,这是预期的),因此这不是防火墙问题。连接到,例如,https://login.myob.com使用任何浏览器均可成功。

我看过的东西:

  • 数据包跟踪显示连接已成功建立,但客户端(本地计算机)在收到 TLS 1.2 Server Hello(服务器选择的密码套件是 Client Hello 中提供的套件之一)后立即将其丢弃。它在服务器有机会发送证书之前就被丢弃了,因此这也不是证书问题。(编辑后添加:不是“丢弃”而是“关闭”,因为客户端发送的是 FIN 数据包,而不是立即发送 RST)

  • 使用 Nartac Software 的 IISCrypto 检查了 schannel 的密码和协议(看起来不错),并应用了一个稍微不那么严格的模板,允许 TLS 1.0 及以上版本。是的,我知道它不太安全,但我想确保它不是那样。

  • 彻底禁用 Windows 防火墙。服务器上也没有运行任何防病毒软件。

我还尝试按照某人的建议使用 PowerShell 发出请求,

try { Invoke-WebRequest https://collabmaintenance.myob.com/ -UseBasicParsing } catch { write-host $_.exception }

并得到以下内容

System.Net.WebException:请求已中止:无法创建 SSL/TLS 安全通道。

无论我通过发出以下命令强制使用 TLS 1.0、1.1 还是 1.2,错误都是相同的

 [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls (or Tls11 or Tls12)

如果我尝试强制使用 SSL3,则错误消息会有所不同:

System.Net.WebException:底层连接已关闭:接收时发生意外错误。---> System.ComponentModel.Win32Exception:客户端和服务器无法通信,因为它们没有通用算法

我还需要检查什么?我已经束手无策了。

附言:请在写答案之前先理解问题。诸如“使用其他浏览器”或“检查 SSL 证书”之类的低效答案没有帮助。

相关内容