8

我最近从 AWS ELB 切换到 HAProxy。我在负载均衡器(HAProxy 1.5dev19)上终止 SSL。

自从切换后,我在 HAProxy 日志中不断收到一些 SSL 连接错误(占请求总数的 5-10%)。重复出现三种类型的错误: SSL 握手期间连接关闭 SSL 握手期间超时 SSL 握手失败(这种情况很少发生)

我正在使用免费的 StartSSL 证书,所以我的第一个想法是某些主机在接受此证书时遇到了问题,而我过去没有看到这些错误,因为 ELB 不提供日志记录。唯一的问题是一些主机最终确实有成功的连接。

我可以毫无错误地连接到服务器,所以我不确定如何在我的末端复制这些错误。

4

3 回答 3

8

这听起来像是在握手中途离开的客户端(TCP RST 或超时)。这在某种程度上是正常的,但 5-10% 听起来太高了。可能是证书问题;我不确定这到底是如何呈现给

我发生的事情:

  • 如果谈判非常缓慢,您将有更多的客户流失。
  • 在新的 SSL 端点代理开始报告这些问题之前,您可能没有意识到潜在的 TCP 问题。

您是否看到有时成功有时失败的个别主机?如果是这样,这不太可能是证书问题。我不确定当用户拒绝不受信任的证书时连接是如何断开的。

您可以在 HAProxy 机器上使用 Wireshark 来捕获 SSL 握手并解析它们(您不需要解密会话以进行握手分析,尽管您可以,因为您拥有服务器私钥)。

于 2013-07-11T15:41:51.617 回答
1

我也发生过这种情况。以下首先出现SSL handshake failure,然后在关闭后option dontlognull我们也进入Timeout during SSL handshake了 haproxy 日志。

起初,我确保所有defaults超时都是正确的。

timeout connect 30s
timeout client  30s
timeout server  60s

不幸的是,问题出在该frontend部分

有一条线timeout client 60我只假设是60msmean 而不是60s.

似乎某些客户端连接速度很慢,并且在 SSL 握手期间被踢出。检查您的前端是否有客户端超时。

于 2016-09-22T18:15:22.703 回答
0

您的 haproxy ssl 前端是如何配置的?

例如,我使用以下内容来缓解 BEAST 攻击: bind XXXX:443 ssl crt /etc/haproxy/ssl/XXXX.pem no-sslv3 ciphers RC4-SHA:AES128-SHA:AES256-SHA

但有些客户端似乎会产生相同的“SSL 握手失败”错误。我认为这是因为配置过于严格。

于 2014-03-04T13:05:14.080 回答