Я запускаю новый сайт в 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? Я делаю что-то неправильно?
Ах, я понял, что заголовки HSTS игнорируются при отправке через соединение http (я думаю, потому что они должны быть связаны с действительным сертификатом, который поставляется с соединением https).
https://en.wikipedia.org/wiki/HTTP_Strict_Transport_Security#HSTS_mechanism_overview
Сервер реализует политику HSTS, предоставляя заголовок через HTTPS
соединение (заголовки HSTS через HTTP игнорируются).
Других решений пока нет …