Как мой браузер конвертирует мой http-запрос в https? - PullRequest
5 голосов
/ 07 октября 2010

Друзья, которых я хочу знать, когда будет организован защищенный хостинг, нам требуется уникальный IP-адрес, чтобы связать с ним наш SSL-сертификат.Кроме того, я читал в одном уроке, что когда браузер запрашивает защищенное соединение, запускается весь процесс SSL.Но как браузер запрашивает безопасное соединение.Разве мы не просто пишем www.chase.com?И тогда наш браузер конвертирует http в https?Что происходит на заднем плане?

Ответы [ 2 ]

11 голосов
/ 07 октября 2010

Шаг за шагом:

  1. Клиент вводит www.example.com в адресную строку
  2. Браузер принимает протокол HTTP и отправляет вызов GET на www.example.com
  3. www.example.com отвечает перемещенным кодом состояния и сообщает новое местоположение:

    HTTP / 1.1 301 Постоянно перемещено
    Расположение: https : //www.example.com/

  4. Браузер читает это и знает, что он должен установить безопасное соединение HTTP.

  5. ... и так далее. Здесь все усложняется, потому что браузер и сервер обмениваются несколькими сообщениями, пока не будет установлено безопасное соединение.

В любом случае, если вам нужно установить SSL-сертификат, вы должны убедиться, что ваш клиент перенаправлен с HTTP на HTTPS. Это должно быть сделано из конфигураций сервера.

3 голосов
/ 07 октября 2010

В своем программном коде вы оцениваете протокол и перенаправляете, используя 301 (на стороне сервера). Это не сделано в браузере .

Вы можете сделать это в ASP.NET в файле Global.asax
Я не уверен насчет других языков программирования (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);
}

Я думаю, вы можете сделать это по умолчанию в Apache, используя .htaccess, но, насколько я могу судить, если вы хотите сделать это в IIS, вам нужно запустить скрипт asp или включить его в ваше приложение .net. Я могу ошибаться, но это то, с чем я столкнулся в своих испытаниях этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...