Назад | Перейти на главную страницу

Использование записей CNAME для перенаправления на HTTPS, когда HSTS активен

У нас есть веб-сайт, работающий по протоколу HTTPS по следующему URL-адресу: abc.example.com.

Проблема в том, что наш клиент считал, что любой URL-адрес веб-сайта должен начинаться с www и напечатал www.abc.example.com на всех этикетках ...

Нет проблем, я просто создал правило перенаправления, используя функцию перезаписи URL-адресов IIS, чтобы перенаправить все имена хостов на https://abc.example.com. Все идет нормально.

Несколько месяцев назад мы получили электронное письмо от их отдела информационной безопасности, в котором говорилось, что abc.example.com не хватало Strict-Transport-Security заголовок. Они попросили нас реализовать следующий заголовок:

Strict-Transport-Security = max-age=31536000; includeSubDomains; preload.

В то время я не был полностью осведомлен о точной функции этого заголовка, поэтому слепо добавил его на сайт. Я тестировал сайт, просто никогда не тестировал его с помощью www.abc.example.com.

Я только сейчас узнал, что этот заголовок HSTS будет перенаправлять все URL-адреса HTTP на URL-адреса HTTPS самостоятельно, что приведет к игнорированию моих пользовательских правил перенаправления. Проблема в том, что пользователи вводят http://www.abc.example.com и вас перенаправят на https://www.abc.example.com, вместо того https://abc.example.com, что приводит к ошибке сертификата SSL, потому что www.abc.example.com не имеет сертификата SSL.

Так долго как includeSubDomains активен, я, кажется, очень мало могу сделать, чтобы предотвратить это на веб-сервере, если я не настроил сертификат SSL специально для www.abc.example.com.

Вот почему я подумал о том, чтобы попытаться решить эту проблему путем перенаправления на уровне DNS с использованием записи CNAME: www.abc.example.com. CNAME abc.example.com.

У меня вопрос, это сработает? Когда пользователь входит http://www.abc.example.com, будет ли запись CNAME сначала перенаправить этот URL на http://abc.example.com а затем успешно перенаправить на https://abc.example.com используя заголовок HSTS? Или параметр preload предотвратить это даже на уровне DNS?

Любые предложения или помощь приветствуются.

Нет, не пойдет. На уровне DNS нет такой вещи, как перенаправление; перенаправление - это функция протокола HTTP, а DNS (оба A и CNAME) записи используются только для разрешения IP-адреса.

Также нет смысла пытаться аннулировать ситуацию, удалив заголовок,

Strict-Transport-Security = max-age=31536000; includeSubDomains; preload.

поскольку он будет кешироваться в каждом браузере для 31536000 секунд, т.е. 365 дней.

Однако, если вы не реализуете HSTS таким образом, вы не получите особых преимуществ, поскольку кто-то может попытаться изменить http://www.abc.example.com прежде, чем он будет перенаправлен на https://.

Здесь единственным выходом может быть получение подстановочного сертификата, покрывающего *.abc.example.com, или сертификат с несколькими именами, имеющий как Альтернативное имя субъектас.