Я только что проверил Тест сервера SSL правильно ли я реализовал сертификат SSL на своем сервере. Я получил оценку А в их рейтинге, но вы можете получить А + если вы активировали HSTS. После некоторого поиска я обнаружил, что Google может рассматривать HSTS как фактор ранжирования. Так что, похоже, это актуально с точки зрения SEO. Перед внедрением HSTS у меня есть несколько вопросов.
Вопрос 1
Что произойдет, если некоторые внешние javascripts загружают, например, изображение через http (вместо https) на мой сайт? Будет ли HSTS предотвращать загрузку всей страницы или блокировать только определенный «небезопасный» контент?
вопрос 2
На данный момент (без HSTS) я получаю предупреждение о "смешанном содержании", если ресурсы загружаются через http. Существует ли «смешанный контент», если активирован HSTS?
HSTS вообще не пытается обрабатывать смешанный контент: он просто контролирует, должен ли браузер выполнять внутреннюю 307
перенаправлять на HTTPS всякий раз, когда он пытается загрузить URL-адреса HTTP, или нет. Предупреждение о смешанном содержании - это функция браузера, и все текущие браузеры это делают (Mozilla Firefox 23+, Google Chrome 21+, Internet Explorer 10+, Edge с самого начала ...). Предупреждающие блоки смешанного содержания, например <script>
и <iframe>
, но нет <img>
.
Предупреждение о смешанном содержимом во всех упомянутых браузерах проверяется перед загрузкой любого содержимого вообще, т.е. перед перенаправлением HSTS. Это кажется естественным, и его также легко проверить. По умолчанию все внешние изображения загружаются даже с использованием обычного HTTP, а предупреждение о смешанном содержимом выдается только для скриптов и iframe.
HSTS изменяет только ситуацию, когда изображение из домена с поддержкой HSTS загружается с использованием обычного HTTP, и 307 Internal Redirect
выполняется. Стоит отметить: это ситуация без предупреждений о смешанном содержании.
Следовательно, HSTS не работает как быстрое решение проблемы смешанного содержимого:
http://
URL-адреса на вашем сайте даже для самого домена.Я думаю, что ответ на это будет зависеть от того, размещены ли сценарии, на которые вы ссылаетесь, в домене, для которого включен HSTS.
Например. если вы обслуживаете свой контент из mydomain.com
и включите HSTS для этого домена (и, возможно, субдоменов), но скрипты и другой смешанный контент, на который вы ссылаетесь, обслуживаются из otherdomain.com
который не включает HSTS, возможно смешанное содержимое, и браузер все равно будет предупреждать об этом.
HSTS остановит (и поможет исправить смешанный контент) ресурсы, связанные с помощью HTTP в том же домене - и, возможно, субдомен в зависимости от вашей конфигурации - поскольку они будут автоматически «обновлены» до HTTPS.
Это сделано намеренно: если HSTS работает, он получит правильное изображение (галочка по HTTPS), а если нет, то X по HTTP.
Надеюсь, браузеры перестанут отображать предупреждения о смешанном содержимом для содержимого, обновленного до HTTPS через HSTS. :)