Я установил Vagrant box с Ubuntu 18.04 и установил Apache 2.4.29. Я создал и включил новый файл conf, который выглядит так:
<VirtualHost *:80>
ServerName django.dev
ServerAlias www.django.dev
ServerAdmin webmaster@localhost
DocumentRoot /var/www/
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
По какой-то причине apache отвечает заголовком HSTS, когда я пытаюсь вызвать django.dev:
Я понятия не имею, откуда это взялось. Нет такого набора заголовков ни в apache2.conf, ни в 000-default.conf, и у меня даже не включен mod_ssl.
Как ни странно, при прямом вызове IP все работает как положено. Если я пингую django.dev, он разрешается на тот же IP-адрес.
Кто-нибудь знает, как и где можно отключить HSTS? Я в растерянности и уже потратил впустую часы, пытаясь решить эту проблему.
Политика HSTS кэшируется браузером в течение секунд, указанных в max-age
директива (RFC 6797, 6.1.1). Удаление заголовка из конфигурации веб-сервера не удаляет политику из кеша (или список предварительной загрузки, если он отправлен в один), и, следовательно, продолжает вызывать 307 Internal Redirect
s в каждом браузере, который уже кэшировал политику.
Как указано в RFC 6797, 5.3:
Только данный хост HSTS может обновить или вызвать удаление выпущенной им политики HSTS. Это достигается путем отправки
Strict-Transport-Security
Поля заголовка HTTP-ответа для UA с новыми значениями продолжительности времени политики и применимости поддомена. Таким образом, UA кэшируют «самую свежую» информацию о политике HSTS от имени хоста HSTS. Указание нулевой продолжительности времени сигнализирует UA удалить политику HSTS (включая любую заявленную директиву includeSubDomains) для этого хоста HSTS.
Следовательно, единственный способ удалить политику HSTS - установить заголовок HSTS с нулевой продолжительностью, и браузер также должен видеть этот заголовок при безопасном соединении без каких-либо ошибок или предупреждений TLS (2.2).
<VirtualHost *:443>
. . .
Header always set Strict-Transport-Security "max-age=0"
</VirtualHost>
Как ни странно, при прямом вызове IP все работает как положено.
Это совсем не странно. Как объяснено в Приложение,
- Узлы HSTS идентифицируются только через доменные имена - явная идентификация IP-адреса во всех формах исключена. Это сделано для упрощения, а также с учетом различных проблем, связанных с использованием прямой идентификации IP-адреса в сочетании с безопасностью на основе PKI.
.dev
Если это буквально .dev
домен, вы не можете отключить HSTS.
Ваша безопасность - наш приоритет. Файл.
dev
домен верхнего уровня включен в список предварительной загрузки HSTS, поэтому HTTPS требуется для всех подключений к.dev
веб-сайты и страницы без необходимости индивидуальной регистрации или настройки HSTS. Безопасность встроена.