У меня есть тестовый веб-сайт haproxy-ssl-terminated (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
Директива определяет количество секунд после приема поля заголовка STS, в течение которых UA рассматривает хост (от которого было получено сообщение) как Известный хост HSTS.
Вы не можете временно отключить HSTS со стороны сервера, удалив заголовок. Вам необходимо обновить свои сертификаты раньше, чтобы новый сертификат был доставлен до истечения срока действия старого. Еще лучше: автоматизируйте процесс обновления, как Certbot делает для Давайте зашифровать сертификаты.