【发布时间】:2016-02-04 18:27:34
【问题描述】:
我正在尝试发出 HTTPS POST 请求。连接一开始就突然结束。我使用 Wireshark 进行了以下捕获。 192.168.0.33 是我的客户端尝试连接到服务器。 192.185.47.210 是服务器。
No. Time Source Destination Protocol Length Info
51 2.476681000 192.168.0.33 192.185.47.210 TCP 62 1143→443 [SYN] Seq=0 Win=65535 Len=0 MSS=1460 SACK_PERM=1
52 2.534541000 192.185.47.210 192.168.0.33 TCP 62 443→1143 [SYN, ACK] Seq=0 Ack=1 Win=29200 Len=0 MSS=1460 SACK_PERM=1
53 2.534559000 192.168.0.33 192.185.47.210 TCP 54 1143→443 [ACK] Seq=1 Ack=1 Win=65535 Len=0
54 2.534720000 192.168.0.33 192.185.47.210 TLSv1 163 Client Hello
56 2.592332000 192.185.47.210 192.168.0.33 TCP 60 443→1143 [ACK] Seq=1 Ack=110 Win=29200 Len=0
57 2.594550000 192.185.47.210 192.168.0.33 TLSv1 191 Server Hello, Change Cipher Spec, Encrypted Handshake Message
58 2.596455000 192.168.0.33 192.185.47.210 TCP 54 1143→443 [FIN, ACK] Seq=110 Ack=138 Win=65398 Len=0
60 2.654542000 192.185.47.210 192.168.0.33 TCP 60 443→1143 [FIN, ACK] Seq=138 Ack=111 Win=29200 Len=0
61 2.654558000 192.168.0.33 192.185.47.210 TCP 54 1143→443 [ACK] Seq=111 Ack=139 Win=65398 Len=0
我怀疑问题出在数据包 57 上,因为在收到此数据包后,客户端会断开 TCP 连接。包 57 看起来像
Frame 57: 191 bytes on wire (1528 bits), 191 bytes captured (1528 bits) on interface 0
Ethernet II, Src: Actionte_39:b9:de (18:1b:eb:39:b9:de), Dst: CadmusCo_f6:2b:9b (08:00:27:f6:2b:9b)
Internet Protocol Version 4, Src: 192.185.47.210 (192.185.47.210), Dst: 192.168.0.33 (192.168.0.33)
Transmission Control Protocol, Src Port: 443 (443), Dst Port: 1143 (1143), Seq: 1, Ack: 110, Len: 137
Secure Sockets Layer
TLSv1 Record Layer: Handshake Protocol: Server Hello
Content Type: Handshake (22)
Version: TLS 1.0 (0x0301)
Length: 81
Handshake Protocol: Server Hello
TLSv1 Record Layer: Change Cipher Spec Protocol: Change Cipher Spec
Content Type: Change Cipher Spec (20)
Version: TLS 1.0 (0x0301)
Length: 1
Change Cipher Spec Message
TLSv1 Record Layer: Handshake Protocol: Encrypted Handshake Message
Content Type: Handshake (22)
Version: TLS 1.0 (0x0301)
Length: 40
Handshake Protocol: Encrypted Handshake Message
其他信息:
客户端是在 Windows XP 上运行的 C# 程序。该调用由 WebRequest (https://msdn.microsoft.com/en-us/library/system.net.webrequest%28v=vs.110%29.aspx) 类进行。服务器位于共享主机 (Hostgator) 上,具有专用 IP 和 COMODO 的 SSL 证书。
问题
谁能帮我理解为什么接收数据包 57 会导致客户端断开连接?
【问题讨论】:
-
您能否提供有关您正在使用的软件的更多详细信息?
-
@TNW。在问题末尾的“其他信息”下添加。
-
进行了查找,check those. 连接可能会尝试验证 XP 的可信根,这可能是有点古老的说服。
-
你的意思是服务器发送了它的证书而客户端拒绝了它?我不理解我发布的 TLSv1 跟踪,因此无法判断是否发送了证书。你能指出你在哪里看到的吗?
-
我习惯了 Wireshark 快速识别问题。由于这似乎没有帮助,您可以尝试增加 .NET 日志记录吗?您可以按照以下步骤吐出一些 SSL 调试信息:msdn.microsoft.com/en-us/library/ty48b824(v=vs.110).aspx