Мне нужно получить доступ к некоторым изображениям и файлам JS через HTTP, но если я включу HSTS с add_header Strict-Transport-Security "max-age=31536000";
, все файлы принудительно обслуживаются через HTTPS.
Так что я использовал add_header Strict-Transport-Security "max-age=0;"
.
Есть ли способ доступа к файлам через HTTP с включенным HSTS?
HSTS не является перенаправлением: сначала вам нужно перенаправить HTTP на HTTPS, а затем заголовок HSTS сообщает вашему браузеру никогда не возвращаться к HTTP. Это и есть его цель. Если у вас есть HSTS, вы ничего не предоставляете по HTTP.
Вы упомянули, что вам это нужно для некоторых изображений ja JavaScripts. Однако, если ваш сайт находится на HTTPS, браузеры не должны доверять внешним ресурсам через HTTP. Особенно опасно было бы загружать JavaScript через HTTP на сайт, защищенный TLS: сценарий может быть изменен, чтобы предоставлять данные внутри защищенного соединения.
Если вам нужно предоставить статический контент за пределами сайта, вы можете использовать поддомен. Поскольку вы не установили includeSubDomains
в вашем заголовке HSTS он не применяется к субдоменам. Вы все еще можете иметь static.example.com/path/to/image.jpg
обслуживается по HTTP.