【发布时间】: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。