HSTS: Достаточно ли включить includeSubDomains в основном домене?

В моем издании Plesk для веб-администраторов я только что активировал HSTS на своем основном домене. www.domain.tld с

add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;

Тест на ssllabs.com говорит, что все работает нормально. Проблема в моем поддомене (subdomain.domain.tld). Если я проверяю свой поддомен на ssllabs, он говорит, что HSTS не активирован.

Должен ли я включить заголовок

add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;

на моем поддомене тоже или достаточно реализации на моем основном домене?

Я думал, добавив includeSubDomains не было необходимости добавлять его явно на поддоменах.

2 ответа

Решение

includeSubDomains part только инструктирует браузер, как только его увидит, что запросы к другим поддоменам должны соответствовать тем же правилам HSTS (т. е. должен присутствовать действительный сертификат). Он не "выводит" применение этого правила к вашим поддоменам, если, например, пользователь никогда ранее не заходил на ваш сайт www.domain.tld. В этом случае их браузер никогда не увидит наличие этого заголовка на вашем поддомене www и, следовательно, не будет применять правила HSTS.

Если пользователь видел этот заголовок в вашем поддомене www, затем пытается получить доступ к поддомену с недействительным сертификатом, он заблокирует его и не позволит пользователю продолжить.

Короче говоря, вам нужно убедиться, что вы обслуживаете один и тот же заголовок HSTS во всех ваших поддоменах, чтобы это было на 100% эффективным.

Unlike say CAA, HSTS is not read from all the parent domain(s).

So if you have it set on example.com with includeSubDomains тогда он не будет прочитан, если вы просто посетите www.example.com. Однако, если вам случится посетить example.com сначала, это будет установлено. Таким образом, вы можете получить противоречивые результаты.

Вероятно, это связано с тем, что это повлияет на производительность (и конфиденциальность!), Чтобы проверить все родительские домены, чтобы увидеть, отправляют ли они также заголовок HSTS с includesubdomains,

Таким образом, он должен быть установлен на используемый домен, а также на любой родительский домен (ы).

Теперь даже этого часто недостаточно для полной защиты. Например, если вы отправили его на www.example.com и на example.com, но сайт example.com обычно не посещается, то для большинства посетителей веб-сайта кэшируется только вариант www в качестве домена HSTS. Так что вполне возможно посетить example.com по HTTP хотя бы для одного запроса. По этой причине рекомендуется загружать один ресурс (например, изображение) из базового домена через HTTPS при посещении вашего домена www, чтобы загружались обе политики HSTS. Также рекомендуется перенаправить как example.com -> https://example.com/ -> https://www.example.com/ а не example.com прямо на https://www.example.com/ чтобы получить любую Политика example.com HSTS, несмотря на влияние этого дополнительного перенаправления на производительность.

И возможно иметь разные политики на каждом уровне. Например, если у вас есть несколько поддоменов, которые не подключены к HTTPS (например, intranet.example.com), вы можете иметь политику HSTS на верхнем уровне без includeSubDomains и другая политика HSTS на www.example.com с includeSubDomains,

Альтернативой всему этому является предварительная загрузка домена. Это жестко кодирует весь домен (и, как правило, все дочерние домены) в коде браузера, так что даже первые посещения защищены. Это также не влияет на производительность проверки всех родительских доменов, поэтому вступает в силу только одна запись с includeSubDomains, Но предварительная нагрузка является серьезным обязательством и не должна приниматься слегка, поскольку она в принципе необратима. Также вы не можете выполнить предварительную загрузку, если все ваши субдомены не являются HTTPS - по крайней мере, мы не будем запрашивать специальную предварительную загрузку. Еще одна причина загрузить изображение из домена верхнего уровня, чтобы базовая политика была выбрана до того, как вступит в силу необратимая предварительная загрузка!

В общем, это сложно!:-) Но стоит усилий, чтобы понять это и понять это правильно.

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