我正在查看一个HTTPS“GET”请求的Microsoft网络监视器捕获,如果由.NET HttpWebRequest
执行,它将神秘地永远不会完成。这个TLS警报是什么意思?
我发现,服务器Hello包含一个警告条目,看起来像这样:
我有以下问题:
这是真的警报加密?我知道,如果在密钥交换后发送警报,警报确实会加密,但正如您所看到的,这很快发生在Server Hello的谈判阶段。
如果未加密,是否格式不正确?第一个字节01
表示这是一个警告,但70
(“协议版本”)是一个致命错误。当然70
只能作为02 70
的一部分出现?
这是什么意思?“协议版本”提示了erm协议版本。然而,客户端Hello包含“TLS 1.0”作为最大版本,并且服务器Hello也指定了“TLS 1.0”。还有什么可能是错的?
如果有人觉得自己够英勇:)
我用来执行此请求shown in my other question的代码,我可以将整个捕获。
我想补充说,你的客户端不应该因为这个警报而终止连接。握手应该已经完成。 – Nikos 2011-04-20 10:16:49
Te unrecognized_name根据RFC,警报可能是致命的。在Java 7的情况下,它是致命的。你可以关闭发送SNI:http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7127374 – eckes 2012-01-07 12:48:04