【问题标题】:SSLv2 client getting TCP RST from studSSLv2 客户端从螺柱获取 TCP RST
【发布时间】:2015-10-23 21:33:04
【问题描述】:

至少我认为螺柱是罪魁祸首。

我的服务器设置是 stud -> haproxy -> nginx -> express server

请求无法通过 haproxy。

我使用 SSLv2 发出请求:

import httplib
c = httplib.HTTPSConnection("my-server.com")
c.request("GET", "/foo/bar")
response = c.getresponse()
print response.status, response.reason
data = response.read()
print data

...然后回来

socket.error: [Errno 54] Connection reset by peer

这是 SSL 转储:

New TCP connection #1: clientIP(29779) <-> my-server.com(443)
1 1  0.0044 (0.0044)  C>S SSLv2 compatible client hello
  Version 3.1 
  cipher suites
  TLS_DHE_RSA_WITH_AES_256_CBC_SHA  
  TLS_DHE_DSS_WITH_AES_256_CBC_SHA  
  TLS_RSA_WITH_AES_256_CBC_SHA  
  TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA  
  TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA  
  TLS_RSA_WITH_3DES_EDE_CBC_SHA  
  TLS_DHE_RSA_WITH_AES_128_CBC_SHA  
  TLS_DHE_DSS_WITH_AES_128_CBC_SHA  
  TLS_RSA_WITH_AES_128_CBC_SHA  
  Unknown value 0x9a  
  Unknown value 0x99  
  Unknown value 0x96  
  TLS_RSA_WITH_RC4_128_SHA  
  TLS_RSA_WITH_RC4_128_MD5  
  Unknown value 0xff  
1    0.0047 (0.0002)  S>C  TCP RST

有人知道如何让螺柱接受 SSLv2 请求吗?

谢谢

【问题讨论】:

  • sslv2不是无论如何都要避免的吗?我会说这种尝试被拒绝是件好事
  • 我完全同意,但这不是我能控制的。合作伙伴想与它建立联系。
  • 您是否在 Internet 上提供服务?如果是,请去找你的上级并获得他们的支持,因为运行 sslv2 是疏忽大意的。您正在冒着服务和声誉的风险。
  • Google 似乎并不介意客户端连接 sslv2。将 my-server.com 替换为 google.com,我们会收到 HTTP 响应。这让我相信它足够安全?不管这是否属实,有谁知道谷歌在这里做什么?
  • 那个 hello 是 SSLv2 format,但表示 protocols 最高 TLSv1.0 (wire 3.1);注意“兼容”。 SSLv2 早就不能接受了,SSLv3 也差不多一年了(POODLE),但是 TLSv1.0 仍然可以接受,勉强,大多数地方。我不知道 stud 做什么甚至是什么,但 haproxy 和 nginx 都使用 OpenSSL,它可以根据应用程序代码/配置处理 v2 hello。

标签: ssl https tls1.2


【解决方案1】:

显然haproxy 不支持 SSLv2,但即使它支持了,实际上也可以肯定目标服务器也不支持它。

您的要求已过时 20 年。例如,Java 从不支持 SSLv2,除了在 IBM JVM 中,我怀疑它仍然在那里。

教育客户。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-04
    • 2015-09-26
    • 1970-01-01
    • 2018-12-30
    • 2020-12-17
    • 1970-01-01
    • 2017-11-05
    相关资源
    最近更新 更多