Отправлен заголовок Strict-Transport-Security, но Chrome все еще запрашивает через http
Я запускаю новый сайт в Google App Engine с настраиваемым доменом и хочу, чтобы весь трафик проходил через https.
Я создал тестовый скрипт на http://rublonde.com/tmp:
<?
header("Strict-Transport-Security: max-age=180; includeSubdomains");
print $_SERVER['HTTP_X_FORWARDED_PROTO'];
(Содержимое сайта на самом деле не соответствует имени домена, я просто временно использую этот домен в качестве настраиваемого домена, чтобы можно было работать с заголовком HTTPS.)
В Google App Engine HTTP_X_FORWARDED_PROTO
будет либо http
или же https
, При первой загрузке этой страницы я предполагал, что он получит заголовок HSTS, а затем при последующих загрузках страницы Chrome должен автоматически запрашивать страницу через https.
Я неправильно понимаю, как работает HSTS? Я делаю что-то неправильно?
1 ответ
Ах, я понял, что заголовки HSTS игнорируются при отправке через соединение http (я думаю, потому что они должны быть связаны с действительным сертификатом, который поставляется с соединением https).
https://en.wikipedia.org/wiki/HTTP_Strict_Transport_Security
Сервер реализует политику HSTS, предоставляя заголовок через соединение HTTPS (заголовки HSTS через HTTP игнорируются).