这是我的要求:
var request = (HttpWebRequest) WebRequest.Create("https://mtgox.com/");
request.CookieContainer = new CookieContainer();
request.AllowAutoRedirect = false;
request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
request.Headers[HttpRequestHeader.AcceptEncoding] = "gzip, deflate";
request.Headers[HttpRequestHeader.AcceptLanguage] = "en-gb,en;q=0.5";
request.Headers[HttpRequestHeader.AcceptCharset] = "ISO-8859-1,utf-8;q=0.7,*;q=0.7";
request.Timeout = 5000;
request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:2.0) Gecko/20100101 Firefox/4.0";
request.Method = "GET";
request.GetResponse();
Run Code Online (Sandbox Code Playgroud)
使用HttpFox从Firefox复制标题.我使用Fiddler2验证至少对于HTTP请求,标头在Firefox请求和我的请求之间是完全相同的.
但是,当使用HTTPS 对此特定网站执行请求时,请求会超时.它适用于其他网站.
我必须以不同的方式对Firefox执行,因为它始终适用于Firefox.但是,我无法使用Fiddler2调试它,因为每当Fiddler2转发这些请求时,它们也会超时,即使是由Firefox发起的.
它只是一个非常错误的网站吗?上面的哪一部分让我不喜欢Firefox?
我正在查看Microsoft网络监视器捕获的HTTPS"GET"请求,如果由.NET执行,该请求神秘地永远不会完成HttpWebRequest.
我发现Server Hello包含一个Alert条目,如下所示:

我有这些问题:
此警报是否真的加密了?我读到,如果在密钥交换后发送警报,则警报会加密,但正如您所看到的,这在协商阶段很早就发生在服务器Hello上.
如果没有加密,是否格式错误?第一个字节01表示它是一个警告,但70("协议版本")是一个致命的错误.当然70只能作为一部分出现02 70?
这究竟是什么意思?"协议版本"暗示了一些与erm协议版本有关的东西.但是,Client Hello包含"TLS 1.0"作为最大版本,而Server Hello也指定"TLS 1.0".还有什么可能是错的?
如果有人感到勇敢,我可以附上整个捕获:)
我用来执行此请求的代码显示在我的另一个问题中.