Apache / 2.2.25(Win32)mod_ssl / 2.2.25 OpenSSL / 0.9.8y
我正在尝试使用Apache的HTTP CONNECT方法。 我正在testing它与两个不同的目标服务器。 它与一台服务器正常工作,但与另一台服务器失败。 以下是Wireshark跟踪,用于Apache服务器与失败的目标服务器之间的连接。 它看起来像Apache服务器发送警报之前,它使目标服务器有机会发送服务器你好。 为什么发生这种情况?
Apache – >目标TCP 57070> https [SYN] Seq = 0 Win = 8192 Len = 0 MSS = 1460 WS = 256 SACK_PERM = 1
目的地 – > Apache TCP https> 57070 [SYN,ACK] Seq = 0 Ack = 1 Win = 4380 Len = 0 MSS = 1460 WS = 1 SACK_PERM = 1
Apache – >目标TCP 57070> https [ACK] Seq = 1 Ack = 1 Win = 131328 Len = 0
Apache – >目标SSLv3客户端Hello
Apache – >目标SSLv3警报(级别:致命,描述:握手失败)
Apache – >目标TCP 57070> https [FIN,ACK] Seq = 80 Ack = 1 Win = 131328 Len = 0
目的地 – > Apache SSLv3服务器你好
Apache – >目标TCP 57070> https [RST,ACK] Seq = 81 Ack = 1461 Win = 0 Len = 0
之所以这么做是因为Apache将响应作为两个单独的数据包发送给CONNECT请求:
数据包1:build立HTTP / 1.0 200连接
数据包2:代理代理:Apache / 2.2.25(Win32)mod_ssl / 2.2.25 OpenSSL / 0.9.8y
我正从“200 Connection”的套接字读取循环中断开,并且数据包2被用作服务器Hello,因为它是队列中的下一个数据包。