Я установил 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 Host.
Таким образом, единственный способ удалить политику HSTS - установить заголовок HSTS с нулевой продолжительностью , и браузер также должен видеть этот заголовок в безопасном соединении без каких-либо ошибок TLS или предупреждений ( 2,2 ).
<VirtualHost *:443>
. . .
Header always set Strict-Transport-Security "max-age=0"
</VirtualHost>
Как ни странно, при прямом вызове IP все работает должным образом.
Это совсем не странно.Как объясняется в Приложении A ,
- HSTS-хосты идентифицируются только через доменные имена - явный IP-адрес. адресная идентификация всех форм исключена. Это для упрощение, а также признание различных проблем с использование прямой идентификации IP-адреса в сочетании с PKI на основе безопасность.
.dev
. Если это буквально домен .dev
, вы не можете отключить HSTS.
Ваша безопасность - наш приоритет. Файл.
dev
домен верхнего уровня включен в списке предварительной загрузки HSTS, что делает HTTPS обязательным для всех подключений к .dev
веб-сайты и страницы без индивидуальной регистрации HSTS или конфигурация. Встроенная безопасность.