Список предварительной загрузки HSTS - возможные проблемы с поисковой оптимизацией для сайтов www

Позвольте мне объяснить здесь реальную ситуацию в мире.

Я запускаю веб-сайт https://www.liloo.ro и хочу включить HSTS (+ предварительная загрузка HSTS) для этого.

Проблема в том, что для того, чтобы отправить его в список предварительной загрузки, основной домен должен ответить заголовком HSTS.

Позвольте мне быть более точным: для того, чтобы добавить сайт в список предварительной загрузки и соответствовать требованиям, первое перенаправление должно быть на https-версию основного домена.

В моем случае я не могу перенаправить с http напрямую на https + www -> мне нужно сначала перенаправить с http на https (обслужить здесь заголовок HSTS основного доменного имени) и снова перенаправить на https + www.

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

Таким образом, каждый раз, когда я смотрю на это, мне приходится либо отказываться от списка предварительной загрузки HSTS, либо использовать цепные перенаправления. Ни один из вариантов не выглядит идеальным.

Единственный возможный обходной путь может быть что-то из требований списка предварительной загрузки, но я не совсем понимаю, что это значит:

Если вы обслуживаете перенаправление, это перенаправление должно иметь заголовок HSTS, а не страницу, на которую выполняется перенаправление.

Насколько я знаю, при перенаправлении невозможно использовать такую ​​вещь, как заголовок HSTS ... но, возможно, я ошибаюсь. Есть идеи, как решить эту проблему? ... или я должен полностью отказаться от списка предварительной загрузки HSTS, потому что мой сайт только www?

Я не могу сейчас просто переключиться с www на не-www ... Я знаю, что это было бы «легкое» решение.

Любая идея - очень ценится. Я заметил эту ветку Добавление HTTP-заголовков HSTS в корень домена во время перенаправления на субдомен www в web.config ... но я сомневаюсь, что это решит проблему (+ я использую nginx)


person Alex    schedule 05.02.2017    source источник


Ответы (1)


Я очень благодарен, что вы разместили это, потому что у меня точно такая же проблема, т.е. http://DOMAIN перенаправляет напрямую на https://www.DOMAIN, комбинируя перенаправление на HTTPS и один в поддомен www.

Я знаю, что это было бы «легкое» решение.

Обратите внимание, что есть причин для использования субдомен, например www, как это обсуждалось на нескольких поводов уже есть, и поэтому этот выбор вполне понятен.

Однако HSTS не имеет возможности (по крайней мере, пока) объединить два перенаправления: он может только перенаправлять напрямую на HTTPS. Я полагаю, что если сайт предварительной загрузки HSTS обнаруживает, что это не то, что делает сам простой HTTP-сервер, то принудительное «внутреннее перенаправление 307» только на HTTPS недопустимо. (Насколько я могу судить, это требование явно не указано на hstspreload.org, но может быть выяснено только на самом деле пытаюсь настроить предварительную загрузку HSTS.)

У меня нет полного ответа на ваш вопрос, но я могу предоставить немного больше информации по нескольким поднятым вами вопросам:

Если вы обслуживаете перенаправление, это перенаправление должно иметь заголовок HSTS, а не страницу, на которую выполняется перенаправление.

Обратите внимание на точную (текущую) цитату из hstspreload.org:

Если вы обслуживаете дополнительное перенаправление со своего HTTPS-сайта, это перенаправление должно по-прежнему иметь заголовок HSTS (а не страницу, на которую выполняется перенаправление).

Это актуально для следующего пункта:

Насколько я знаю, при перенаправлении невозможно использовать такую ​​вещь, как заголовок HSTS ...

Вполне возможно, что ответ перенаправления HTTP также имеет заголовок HSTS. Это только означает, что ответ перенаправления HTTP также содержит поле заголовка Strict-Transport-Security с подходящими параметрами. Например, используя SWI-Prolog в качестве HTTP-сервера, вы можете отправлять такие ответы, как это:

?- http_status_reply(moved('https://stackoverflow.com'), current_output,
     [strict_transport_security('max-age=63072000; includeSubdomains')], Code).

уступая:

HTTP/1.1 301 Moved Permanently
Date: Sun, 12 Feb 2017 10:04:55 GMT
Location: https://stackoverflow.com
Strict-Transport-Security: max-age=63072000; includeSubdomains
Content-Length: 366
Content-Type: text/html; charset=UTF-8

etc.

Обратите внимание, что это поле заголовка допустимо только тогда, когда TLS уже используется (в противном случае злоумышленник может принудительно направить трафик на другой порт через соединение, которое не аутентифицировано!). Фактически, заголовок не должен появляться в перенаправлении HTTPHTTPS, потому что он использует неаутентифицированное соединение, и если это (неправильно) действительно происходит по обычному HTTP, клиент должен игнорировать это.

Теперь перейдем к сути вашего вопроса:

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

Я полностью согласен с тем, что связанные перенаправления далеки от идеала, и, похоже, нет никакого способа обойти это с такими (обычными!) Настройками, как наша, по крайней мере, в настоящее время.

Однако я лично надеюсь, что влияние дополнительного перенаправления не сильно повлияет на рейтинг вашего сайта: теоретически, как только поисковая система видит, что ваш сайт находится в списке предварительной загрузки HSTS, все, о чем она должна заботиться, - это версия HTTPS. (потому что это то, что делают браузеры, поддерживающие предварительную загрузку HSTS!). Таким образом, вы получаете только одно перенаправление, а именно https://DOMAINhttps://www.DOMAIN, что должно быть довольно сопоставимо с вашей текущей ситуацией. По крайней мере, это моя несколько наивная надежда. В этом перенаправлении убедитесь, что заголовок HSTS включен, поскольку это требование для попадания в список предварительной загрузки. Конечно, точные детали конфигурации зависят от вашего конкретного веб-сервера.

Также обратите внимание, что вы не можете восстановить исходную цепочку переадресации даже после внесения ее в список предварительной загрузки HSTS. Это связано с тем, что в разделе Продолжение требований указано:

Вы должны убедиться, что ваш сайт всегда удовлетворяет требованиям к отправке.

person mat    schedule 11.02.2017
comment
Большое спасибо за очень полный ответ! - person Alex; 28.11.2017