Мой Chrome «переходит» на несуществующий протокол HTTPS

3

Мой Chrome (40.0.2214.115m) переходит на несуществующий https:

Я печатаю в

http://johnwhitech.homeip.net:8080/

И Chrome перенаправить на

http s: //johnwhitech.homeip.net: 8080 /

который не существует. я делаю не везде есть HTTPS.

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

Я попытался войти запрос с Fiddler, вот оно:

СОЕДИНИТЬ johnwhitech.homeip.net:8080 HTTP / 1.1

Ведущий: johnwhitech.homeip.net:8080

Подключение: keep-alive

Пользователь-агент: Mozilla / 5.0 (Windows NT 6.3; WOW64) AppleWebKit / 537.36 (KHTML, как Gecko)

Chrome / 40.0.2214.115 Safari / 537.36

Обнаружено совместимое с SSLv3 рукопожатие ClientHello. Fiddler извлек параметры ниже.

...

Другая странная вещь: в столбце HOST fiddler, если я пытаюсь использовать firefox, я вижу имя моего сервера. С хромом я вижу "Tunnel to ..." даже для самого первого запроса. Протокол действительно HTTP (посмотрите на начало пакета), но почему в моем очаге вместе с ним отправляется SSL "ClientHello"?

Это нормальное поведение?

Единственное, что я вижу, что может быть связано с SSL - это то, что я установил самозаверяющий сертификат, сначала через настройки Chrome, а затем по всей системе. Этот сертификат работает хорошо, но, возможно, поскольку доменное имя соответствует сертификату в списке, chromes пытается SSL?

Спасибо, ребята!


EDIT3: это поведение также происходит без подключения к Интернету (кэш очищен), поэтому определенно не на стороне сервера


РЕДАКТИРОВАТЬ 4: Что я вижу на вкладке «СЕТЬ» Chrome Dev Tools. Первая запись нормальная, вторая запись через HTTP, который сразу же перенаправляется на HTTPS. Это происходит без подключения к сети, в частности, сервер не отправка HSTS.

http://i.stack.imgur.com/xfoxA.png

lbarman
источник
Какое программное обеспечение вы используете на сервере?
Mike Minaev
Chrome делает CONNECT потому что именно так HTTPS работает с (непрозрачными) прокси. Кстати, Фиддлер это прокси. Вместо этого вы должны сосредоточиться на том, делает ли Apache перенаправление или нет. Используйте Wireshark или tcpdump анализировать трафик на вашем сервере.
Daniel B
Спасибо за информацию о CONNECT. Отредактировано, особенно: также происходит без подключения к интернету.
lbarman

Ответы:

7

Chrome четко указывает причину: HSTS. HSTS, как только получил, прилипает. Это неотъемлемая часть концепции. Это означает, что если Chrome получил HSTS-заголовок от вашего сервера, даже если только один раз, он будет придерживаться до его истечения.

Чтобы проверить HSTS-кэш Chrome, перейдите на chrome://net-internals/#hsts, Оттуда вы можете запросить кэш. Если в сообщении «Не найдено» Chrome есть кэшированный заголовок HSTS на вашей странице. Чтобы удалить его, используйте инструмент на той же странице.

Daniel B
источник
Большой ! это было это Я не знал, что HSTS завис, и я подумал, что опция dev-tools «без кэширования» выполняет чистое состояние. Отличный вклад. Для справки, я не настроил свой сервер Apache для отправки HSTS, поэтому кажется достаточным, чтобы в какой-то момент адрес был доступен через HTTPS для chrome, чтобы запомнить его и «принудительно установить SSL» через HSTS позже.
lbarman