在我办公室的网络上,使用笔记本电脑上的 Linux,我无法登录或使用 HipChat。当我尝试在 Chrome 中访问时https://www.hipchat.com/sign_in
,我收到ERR_EMPTY_RESPONSE
(未收到数据)。使用他们的应用程序时也会发生同样的情况。
奇怪的是,如果我将笔记本电脑重启到 Windows,一切正常,HipChat 的网站、应用程序都可以正常加载。但在 Linux 中却不行,而且会超时。
我和办公室的 IT 人员试图解决这个问题,但我们不知道问题出在哪里。尝试连接到不同的接入点,使用以太网而不是 wifi,尝试更改 DNS,尝试重新启动,清除 cookie,禁用扩展,使用 VPN/代理,但都无法让 HipChat 在 Linux 中加载。
哦,如果你想更多的奇怪的是,在家里 HipChat 在 Linux 中运行得很好。这是怎么回事?为什么一网站在我办公室的 Linux 上超时了,但同一个网站在我办公室的 Windows 和家里的 Linux 上都可以正常使用?!
有谁知道哪里出了问题或者我可以做什么来调试/解决这个问题?
我有点想说这是 Linux 中的 TLS/SSL 问题 - 但为什么在我家却能正常工作呢?我的室友认为这是 DNS 问题 - 但办公室使用的是 Google DNS,更换为其他 DNS 提供商也无法解决问题。
可能是 TLS 超时了或者其他原因?有办法诊断吗?如果是这个问题,可以更改吗?
PS HipChat 可以在我办公室的 Android 手机上使用。哦,如果我将笔记本电脑连接到手机的 LTE,它也可以正常工作。
PPS 我目前的解决方法是使用 HipChat(通过 XMPP)在 finch 内通过 SSH 连接到我家里的服务器...
PPPS 在我办公室的 Linux 上,其他一些网站似乎也遇到了问题。同样,在办公室的 Windows 上和家里的 Linux 上,一切正常。
答案1
我认为这是浏览器版本问题。首先,我会比较一下您的浏览器版本。检查您使用的哪个版本可以运行,哪个版本不能运行(在同一个操作系统下),然后检查两者之间在CHANGELOG
.
话虽如此,我有两个理论:
- 有一种理论认为,浏览器方面 TLS 限制从前段时间开始加强,新版本可能会拒绝弱加密证书。但这似乎不太可能,因为 Hipchat 使用的是 SHA-256,这是一种强加密。
- 另一种理论(我个人认为是)是 Hipchat Web 服务器拒绝了您提供的一些密码套件。我已经看到了您描述的行为,这是一个密码套件问题。简而言之,当您协商 TLS 会话时,您会告诉服务器您(您的浏览器)可以处理哪些密码套件。然后服务器会回复您并告诉您他们选择了哪一个。如果您提供了多个密码套件,并且服务器被告知不要使用其中任何一个(换句话说,(您提供的密码套件)交集(Web 服务器接受的密码套件)= 空集),则无法建立 TLS 会话并且您会收到错误
ERR_EMPTY_RESPONSE
。这就是我告诉您检查浏览器版本的原因,因为也许您提供了一些非常旧的密码套件,而 Hipchat Web 服务器可能会拒绝这些密码套件(一个“极端”的例子是您只提供SSLv2
和SSLv3
,大多数 Web 服务器在 Drown 和 Poodle 漏洞之后都会明确拒绝它们)。