Skip to content

Instantly share code, notes, and snippets.

@pyhedgehog
Created September 27, 2019 08:25
Show Gist options
  • Save pyhedgehog/a1e6c6954fd1b3562ba27d2375b30d6e to your computer and use it in GitHub Desktop.
Save pyhedgehog/a1e6c6954fd1b3562ba27d2375b30d6e to your computer and use it in GitHub Desktop.
Kaspersky: Самоподписанные сертификаты, HSTS и "Проверка защищённых соединений"

Вкратце

Администраторы

Если вынуждены пользоваться самоподписанным сертификатом - сразу отключайте HSTS.

Пользователи

Сразу (до захода на сайт) добавьте свой сайт с самоподписанным сертификатом в список доверенных в Kaspersky Endpoint Security: Настройки->Общие параметры->Параметры сети->Доверенные домены.

Причины

  • Есть случаи, когда самоподписанного сертификата не избежать, несмотря на возможности "Let's Encrypt", например если ваш сайт доступен только из локальной сети.
  • Функция касперского "проверять защищённые соединения" подменяет сертификат (фактически работая как MitM) на подписанный их собственным CA.
  • Есть сервера (например GitLab) которые устанавливают HSTS несмотря на работу с самоподписанным сертификатом. Собственно это независимые настройки.

Технические подробности

  • HSTS включает в браузере защиту от смены сертификата (точнее от смены сертификата на сертификат от другого CA).
  • HSTS взводится при первом посещении браузером страницы сервера, которая в HTTP-заголовке имеет поле Strict-Transport-Security.
  • Если, как в случае с касперским при вашем первом посещении вы были соединены через MitM, и получили сертификат от него, то его браузер и запомнит.
  • Потом, когда MitM отключится, браузер откажется доверять настоящему серверному сертификату.

Ссылки

Прочее

  • В GitLab HSTS выключается настройкой nginx['hsts_max_age']=0.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment