HSTS не работает с Chrome

Я настроил Apache для возврата заголовка HSTS. При подключении к https://lab20.example.com/ из Google Chrome и работе с инструментами разработчика я вижу следующий заголовок ответа: Strict-Transport-Security:max-age=63072000; includeSubdomains;

Но это не работает. Когда я пытаюсь получить доступ к http://lab20.example.com/, Chrome позволяет это.

Также при запуске из хрома: chrome://net-internals/#hsts Query domain "lab20.example.com" Я получаю "Ответ не найден".

Кто-нибудь может объяснить, почему это происходит?

4 ответа

Для тех, кто видит подобную проблему - это может быть потому, что ваш браузер еще не получил доступ к сайту через HTTPS. Попробуйте получить доступ к нему через HTTPS, а затем снова через HTTP. Если HSTS правильно реализован, последний запрос должен завершиться неудачно. MDN объясняет это красиво:

Примечание: Strict-Transport-Security заголовок игнорируется браузером, когда ваш сайт доступен с помощью HTTP; это потому, что злоумышленник может перехватить HTTP соединения и вставьте заголовок или удалите его. Когда ваш сайт доступен через HTTPS без ошибок сертификата браузер знает, что ваш сайт HTTPS способен и будет чтить Strict-Transport-Security заголовок.

Hsts не работает в домене с недействительным сертификатом.

Звучит разумно, поскольку нет смысла принудительно использовать https с недействительным сертификатом.

Вы настроили конфигурацию своего сайта так, чтобы Apache включал SSL для всех поддоменов, а не только для example.com и www.example.com?

Также я считаю, что chrome://net-internals/#hsts показывает только правильные запросы с сайтов, которые предварительно загружены и добавлены через https://hstspreload.appspot.com/. Это объясняет, почему chrome://net-internals/#hsts не работает для вас.

Это может быть связано с тем, что на вашем компьютере включена или отключена поддержка SSL. Если вы не можете отключить NO-SSL, то ваш компьютер может не поддерживать отключение NO-SSL.

Другие вопросы по тегам