У меня есть тестовый веб-сайт с завершением haproxy-ssl (haproxy 1.5.8 2014/10/31, debian jessie stock), где срок действия сертификата истек. Я хотел бы иметь возможность пользоваться сайтом при получении нового сертификата, но Chrome и firefox сообщают мне, что у меня включен HSTS. Я посмотрел, что мне нужно, чтобы включить HSTS в haproxy, но мне кажется, что у меня нет ни одной из соответствующих строк в моем haproxy.conf
. Кроме того, я не вижу никаких следов соответствующего заголовка Strict-Transport-Security
ни при использовании инспектора chrome / firefox, ни при использовании curl.
Заголовки, которые я получаю при использовании curl --insecure -i https: // ....
являются:
Date: Mon, 02 Jul 2018 07:27:31 GMT
Server: Apache
Last-Modified: Fri, 29 Jun 2018 08:54:36 GMT
Vary: Accept-Encoding
Content-Type: text/html
X-Varnish: 296609
Age: 0
Via: 1.1 varnish-v4
ETag: W/"962f-56fc3ff5ab00b-gzip"
Transfer-Encoding: chunked
Connection: close
Accept-Ranges: bytes
Set-Cookie: ServerID=A; path=/
Cache-control: private
Как временно отключить HSTS? Как я могу определить, почему HSTS включается в первую очередь?
Как видно из вывода curl
, в настоящее время заголовок Strict-Transport-Security
отсутствует. В HAProxy было бы http-response set-header Strict-Transport-Security ...
в конфигурации.
Он был там до , возможно, время от времени до того, как у вас был HAProxy перед веб-сервером. Это до того, как HSTS по замыслу кэшируется браузером на max-age =
секунд. Если бы вы там, например, max-age = 31536000
, он был кэширован в течение года, считая с момента последнего присутствия заголовка.
RFC 6797 6.1.1. Директива max-age
REQUIRED
max-age
определяет количество секунд, после приема поля заголовка STS, во время которого UA рассматривает хост (от которого было получено сообщение) как Известный HSTS Хост.
Невозможно временно отключить HSTS на стороне сервера, удалив заголовок. Вам необходимо обновить свои сертификаты раньше, чтобы новый сертификат был доставлен до истечения срока действия старого. Еще лучше: автоматизируйте процесс обновления, как Certbot для Let's Encrypt сертификатов.