仅少数用户的 TLS 握手超时

仅少数用户的 TLS 握手超时

我的一些客户端无法访问任何启用 HTTPS 的网站。浏览器花费大量时间协商 TLS 握手。最终发生超时。

服务器:Ubuntu 上的 Apache2,来自 Let's Encrypt 的 SSL 证书(我认为这并不重要,因为握手失败)。几个基于名称的主机提供各种网站,包括静态 HTML 网站和 PHP 网站,并使用许多 Web 应用程序(基于 Ruby、Go、PHP)反向代理到 Docker 容器中。

客户端:Windows 7、Firefox 66 或 Internet Explorer 11,带有和不带有第三​​方防病毒/安全软件。

当我的一个客户让我在他们的计算机上建立远程会话时,我能够自己在客户端看到问题。我LogLevel trace7同时查看了 Apache2 错误日志(带有),它没有提供任何有意义的信息,除了最终的AH01998: Connection closed to child [x] with abortive shutdown

其他人都能够正常访问这些网站。它们被编入主要搜索引擎的索引。SSL Labs 没有显示任何 SSL/TLS 配置问题。我尝试使用装有 Firefox 和 Internet Explorer 的 Windows 7 虚拟盒重现该问题,它们都能够毫无问题地加载启用 TLS 的网站。

我尝试过但都无济于事:

  • 关闭“互联网安全”软件并重新启动客户端的浏览器(在远程会话中)。
  • 禁用 Apache2 服务器中的任何自定义 SSL 配置(当然除了证书配置)。
  • 已验证客户端的计算机是否有足够的可用 RAM(千兆字节)。
  • 已验证客户端的 IP 地址未出现在我的服务器的 iptables 中。
  • 已验证客户端是否可以在我的服务器上看到未启用 HTTPS 的站点。
  • 尝试通过 HTTPS 加载页面时,调用客户端浏览器中的 Firefox 开发人员工具——什么也看不到。
  • 将整个 Ubuntu 服务器从 18.04(带有 Apache2 2.4.29 和 OpenSSL 1.1.0g)升级到 Ubuntu 服务器 19.04(带有 Apache2 2.4.38 和 OpenSSL 1.1.1b)。

互联网上有一些有关 TLS 握手失败的报告,但没有一个为这个特定问题提供解决方案。

我还能做什么来找出问题的原因?

相关内容