Рекламировать поддержку HTTPS без использования HSTS

У меня есть веб-сайт, который поддерживает HTTPS: все страницы формы http://example.com/foo можно получить как https : //example.com/foo (запрос вернет то же содержание). Тем не менее, на веб-сайте нет ничего конфиденциального, поэтому использование HTTPS не дает больших преимуществ.

Я хотел бы рекламировать существование версии HTTPS на веб-сайте, но я не хочу заставлять людей используйте его: некоторые старые клиенты могут не поддерживать его, некоторые опытные пользователи могут предпочесть не использовать его и т. д. По этой причине я не хочу, чтобы сервер отвечал на незашифрованные HTTP-запросы перенаправлением. Тем не менее, для пользователей, которые предпочитают использовать HTTPS, должен быть способ узнать, что HTTPS поддерживается. (Веб-браузеры не берут на себя инициативу по обновлению HTTP-соединений до HTTPS, например, потому что некоторые веб-сайты не обслуживают тот же контент по HTTPS, как по HTTP.)

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

Единственным подходящим механизмом, который я нашел, является заголовок Обновление: TLS / 1.0 из RFC2817 , который, очевидно, может быть отправлен как сервером, так и клиентом. Но мне не кажется очевидным, широко ли это используется или поддерживается веб-браузерами.

2
задан 3 May 2019 в 21:04
1 ответ

Следующее не является специфическим для HTTPS, но может быть использовано для мягкого направления клиентов к HTTPS.

Если вы предоставляете одно и то же содержимое под более чем одним URL (в этом случае, если вы разрешаете HTTP и HTTPS), то вы должны добавить канонический тег к содержимому, которое вы обслуживаете. Этот канонический тег затем определяет предпочтительный способ доступа к содержимому.

Давайте представим, что вы являетесь владельцем "example.com" и размещаете веб-сайт для этого. Этот сайт доступен как по HTTP, так и по HTTPS, как "example.com", так и "www.example.com", а домашняя страница доступна под "/" и "/default.html" (по каким-либо историческим причинам). Таким образом, доступ к домашней странице можно получить, используя

Затем вы решаете, что по умолчанию все должны использовать https://www. example.com/default.html для доступа к главной странице вашего сайта, но вы не хотите добавлять никаких перенаправлений.

Вы можете добавить следующий тег в раздел вашей главной страницы

<link rel="canonical" href="https://www.example.com/default.html" />

Это скажет каждому webcrawlerу (т.е. google) и браузеру, что содержимое, которое он смотрит прямо сейчас, доступно на этом url. Клиентское программное обеспечение может само решить, что делать с этой информацией.

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

.
4
ответ дан 3 December 2019 в 09:56

Теги

Похожие вопросы