2

Я размещаю несколько веб-сайтов через предоставленное провайдером DNS-имя и разделяю их за порт 80 моего маршрутизатора, используя установку haproxy. Он работал очень хорошо для моих (я думаю, что это 11) уникальных веб-сайтов до тех пор, пока я не изменил один из них на https.

Теперь Google Chrome предполагает, что все мои веб-сайты являются https, и я могу получить доступ только к тому, который является https :-(

Я подозреваю, что причина в Chrome заключается в том, что все мои сайты начинаются с моего доменного имени (myexampledomain.com). Пример сайта 1 будет http://myexampledomain.com/website-one/main.html, а примером сайта 2 будет https://myexampledomain.com/website-two/main.html и по какой-то причине, после того, как chrome успешно получил доступ к ссылке https, ссылка не-https автоматически становится доступной как https. Удалите s (чтобы сделать его http) и Chrome просто добавит его обратно туда.

Когда я захожу на свои сайты через Internet Explorer 9, все они по-прежнему работают нормально, или, по крайней мере, к ним можно получить доступ без автоматического автоматического завершения подключения как https. Так что нет, на моем сервере нет перенаправления с http-на-https, это просто глупость. Кто-нибудь знает, почему Chrome глуп, и есть ли способ получить доступ к другим моим сайтам из Chrome? Я ненавижу IE, и его использование причиняет мне физическую боль ;-)

2 ответа2

1

(Чтобы записать нашу дискуссию как правильный ответ :)

Google Chrome (наряду со всеми другими современными браузерами) поддерживает HTTP-заголовок Strict-Transport-Security , который сообщает браузеру, что «этот сайт должен быть доступен только через HTTPS, поэтому в будущем, даже если пользователь запрашивает HTTP, предоставьте ему Вместо HTTPS. " Поскольку использование HTTPS становится все более распространенным, отправка этого заголовка становится стандартной по умолчанию в новых программах и инфраструктурах, как правило, если HTTPS настроен вообще (что необходимо для того, чтобы заголовок Strict-Transport-Security имел какой-либо эффект) предпочтительно использовать его для всего. Как вы обнаружили, программное обеспечение, которое вы использовали, по умолчанию настроено на такое поведение. Вы не видели поведения в Internet Explorer 9, так как он слишком стар, чтобы поддерживать эту функцию в Интернете.

Два решения: либо (1) изменить конфигурацию программного обеспечения, чтобы не отправлять заголовок, так как вы не хотите заставлять всех пользователей использовать HTTPS, либо (2) изменить весь ваш сайт для правильной работы через HTTPS , Как правило, я бы рекомендовал второй вариант, так как после того, как вы настроили сервер и работающий сертификат HTTPS, в настоящее время нет необходимости использовать незашифрованное соединение в Интернете.

0

В ответ на комментарии Питера Купера-младшего моя душевная боль вызвана моей установкой NGINX в комплекте с gitlab omnibus, которая фактически сообщает подключающимся клиентам, что они всегда должны использовать https только при общении с ним, а в случае Gitlab/NGINX, срок безопасной связи установлен в 24 месяца!

Информация о заголовках STS: http://en.wikipedia.org/wiki/HTTP_Strict_Transport_Security
Информация об установке Gitlab: https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/doc/settings/nginx.md

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .