SSL连接挂起为客户端hello(curl,openssl客户端,apt-get,wget,一切)

我在Debian VPS(xen domU)上遇到了有关SSL的问题。 即几乎所有的SSL连接挂在客户端你好。 例如:

# curl -vI https://graph.facebook.com

  • 关于连接()到graph.facebook.com端口443(#0)
  • 尝试66.220.146.48 …连接
  • 连接到graph.facebook.com(66.220.146.48)端口443(#0)
  • 成功设置证书validation位置:
  • CAfile:无CApath:/ etc / ssl / certs
  • SSLv3,TLS握手,客户端hello(1):

使用openssl客户端时是一样的。 但是,一些SSLstream量工作(例如https://www.nordea.se )。

服务器

#uname -a

Linux server.com 2.6.26-1-xen-amd64 #1 SMP Fri Mar 13 21:39:38 UTC 2009 x86_64 GNU/Linux

但是它确实在我的Dom 0(主要的主机)上工作。

apt-get的

我甚至不能运行apt-get更新与debian安全来源(挂在阅读标题)

打开SSL

开始时我以为我有一个老的openssl客户端(0.9.8o-4),因为我看起来在Dom 0(0.9.8g-15 + lenny8)上有一个更新的版本,但是在openssl deb上做了一个更新帮帮我。

打开SSL客户端

这是openssl客户端挂起时的完整输出: http : //pastebin.com/PAjwMap9

闭幕的想法

我把这个垃圾拿出来了,而且我没有更进一步。 我已经看到了curl,apt-get等问题,但它们都与应用程序有关,而不是系统的通用。 有什么想法吗?

经过与我的主机提供商的讨论后,事实certificate,他们有我的DomU使用的IP链(但不是Dom0)的MTU问题。 我想感谢所有在这个过程中帮助过我的人,你们的帮助是非常宝贵的:)

尝试:

  $sudo apt-get --reinstall install openssl libssl0.9.8 

听起来像客人的/ dev / urandom或/ dev / random ..或其他设备的问题。 在strace下运行你的挂起过程,看看它是否挂着试图阅读。

我会尝试使用openssl s_client,并给它一个随机文件(“任何”文件),只是为了检查问题是否与/ dev / random | urandom有关,如本说:

openssl s_client -state -connect graph.facebook.com:443 -rand anyfile

请注意,以这种方式使用文件是非常危险的密码学方式,所以一定要find另一种解决scheme,然后再推出。

这个已经老了,已经回答了,但是我们遭受了同样的确切的问题,原因是真实的,但不同。

关键是在我们的边缘路由器上嗅探stream量,在那里我们看到ICMP消息到服务器(GitHub.com)要求分片 。 这是混乱的连接,重传,重复确认等等。

在这里输入图像说明

ICMP数据包有一个字段, MTU of next hop值是奇怪的,1450。通常的值是1500。

在这里输入图像说明

我们检查了我们的路由器,其中一个接口(以太网隧道)的值是MTU,所以路由器将所有接口的最小MTU作为下一跳。 一旦我们删除了这个接口(它是未使用的),SSH握手开始再次工作。