我的浏览器如何将我的http请求转换为https?

时间:2010-10-07 15:06:15

标签: https

我想知道安全托管完成后的朋友,我们需要一个唯一的IP地址来将我们的SSL证书与之关联起来。另外,我在一篇教程中读到,当浏览器请求安全连接时,所有SSL进程都会启动。但是浏览器如何请求安全连接。我们不只是写www.chase.com吗?然后我们的浏览器将http转换为https?什么事情发生在后台?

2 个答案:

答案 0 :(得分:11)

一步一步:

  1. 客户在地址栏中输入www.example.com
  2. 浏览器采用HTTP协议并向www.example.com发送GET调用
  3. www.example.com以移动的状态代码回复并提供新位置:

    HTTP / 1.1 301永久移动
    位置: https ://www.example.com/

  4. 浏览器会读取并知道它必须启动安全HTTP连接。

  5. ......等等。这是事情变得更加复杂的地方,因为浏览器和服务器交换多条消息,直到建立安全连接。
  6. 无论如何,如果您需要安装SSL证书,则必须确保将客户端从HTTP重定向到HTTPS。这应该从服务器配置中完成。

答案 1 :(得分:3)

在编程代码中,您使用301(服务器端)评估协议和重定向。 这不是在浏览器中完成的

您可以在Global.asax文件中的ASP.NET中执行此操作 我不确定其他编程语言(PHP,Ruby等)。如果他们愿意的话,其他人可以随意加入并编辑我的答案。

if(!Request.IsSecureConnection)
{
  string redirectUrl = Request.Url.ToString().Replace("http:", "https:");
  HttpContext.Current.Response.Status = "301 Moved Permanently"; 
  HttpContext.Current.Response.AddHeader("Location", redirectUrl);
}

我认为你可以使用.htaccess在Apache中默认执行此操作,但据我所知,如果你想在IIS中执行此操作,则需要运行asp脚本或将其包含在.net应用程序中。我可能错了,但这是我在试验中遇到的问题。