SSL如何在重定向上工作?

时间:2013-05-02 21:36:03

标签: browser ssl

我有兴趣尝试确定用户输入时到底发生了什么,例如

https://www.bing.com

让他们登陆

http://www.bing.com

如果您注意到,www.bing.com显然不支持https,因此返回的页面没有与之关联的证书。浏览器不应该抱怨这个吗?更重要的是,在查看HTTP标头时,我从未真正看到过一个表示返回的页面或任何表明该页面不是https版本的内容(我猜想我发现这种情况发生了一些迹象)。

另一个例子,gmail做了类似的事情 -

我转到https://gmail.com

我最终会在mail.google.comaccounts.google.com上,具体取决于我是否登录。至少这些网站给我一个证书,不像bing,但为什么浏览器不会抱怨URL不匹配?好像我也应该获得gmail.com的证书就是这样,对吧? (gmail重定向上的证书适用于mail.google.com,但不提及通配符或其他gmail.com)

1 个答案:

答案 0 :(得分:1)

没有什么特别的事情发生。这是一个简单的HTTP重定向,但只有在忽略SSL证书错误时才会看到。 (https://www.bing.com目前提供颁发给akamai的证书。)请记住,一旦您告诉浏览器忽略证书错误,它通常会记住该会话其余部分的选择。

如果您指示浏览器忽略SSL证书错误,则在SSL加密连接中发生以下

GET https://www.bing.com/ HTTP/1.1
Host: www.bing.com
Connection: keep-alive
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.73 Safari/537.36
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8,es;q=0.6

HTTP/1.1 302 Moved Temporarily
Server: AkamaiGHost
Content-Length: 0
Location: http://www.bing.com/
Date: Thu, 02 May 2013 22:02:28 GMT
Connection: keep-alive

对于重定向到普通HTTP 1 的HTTPS站点没有规则,因此浏览器只对http://www.bing.com执行正常请求。由于我们现在处于普通的HTTP页面上,因此无需显示(警告或其他)证书。

1 - 除了某些涉及POST请求的情况,某些浏览器会发出警告。

您提到的其他网站的工作方式类似,但从gmail.com重定向到https://mail.google.com除外。 mail.google.com拥有自己的证书,与https://www.gmail.com的证书不同。