Очищаем настройки HSTS в браузерах Chrome и Firefox

HSTS означает HTTP Strict Transport Security, это механизм политики веб-безопасности, который заставляет веб-браузеры взаимодействовать с веб-сайтами только через безопасные HTTPS-соединения (и никогда не HTTP). Это помогает предотвратить атаки на понижение протокола и захват файлов cookie. HSTS был первоначально создан в ответ на уязвимость, введенную Moxie Marlinspike в 2009 году в BlackHat Federal Talk под названием «Новые трюки для защиты SSL на практике». Особая уязвимость, которую HSTS защищает, — это та, которая показана инструментом SSLStrip от Marlinspike. По сути, этот инструмент работает путем преобразования безопасных HTTPS-соединений обратно в незащищенные HTTP-файлы. HSTS исправляет это, сообщая браузеру, что соединение HTTPS всегда должно быть на месте. HSTS также может помочь предотвратить удержание учетных данных на основе файлов cookie с помощью обычных инструментов, таких как Firesheep.

К сожалению, некоторые настройки HSTS могут непреднамеренно вызывать ошибки браузера. Например, если вы используете Chrome, вы можете столкнуться с сообщением:

Ошибка конфиденциальности: ваше соединение не является защищенным (NET::ERR_CERT_AUTHORITY_INVALID)

Если вы попытаетесь связаться с одним и тем же сайтом в другом браузере и не столкнуться с теми же проблемами, может возникнуть проблема с тем, как настройки HSTS повлияли на ваш оригинальный браузер. В этом случае вам нужно будет очистить их. Вот как очистить настройки HSTS в Google Chrome и Mozilla Firefox.

Как очистить и забыть настройки HSTS в популярных браузерах

Если ваш браузер сохранил настройки HSTS для домена, и позже вы попытаетесь подключиться через HTTP или сломанное соединение HTTPS (неверное совпадение имени хоста, сертификат с истекшим сроком действия и т. д.), Вы получите сообщение об ошибке. В отличие от других ошибок HTTPS, ошибки, связанные с HSTS, нельзя обойти. Это связано с тем, что браузер получил явные инструкции из браузера, чтобы не допускать ничего, кроме безопасного соединения. Настройки HSTS включают опцию «max-age», которая сообщает браузеру, как долго кэшировать и запоминать настройки перед повторной проверкой. Чтобы немедленно пройти мимо ошибки, вам нужно будет удалить локальные настройки HSTS вашего браузера для этого домена. Инструкции о том, как это сделать, приведены ниже. Эти настройки необходимо очистить в каждом браузере. Как разработчик, вы можете столкнуться с этой ошибкой, если вы тестируете конфигурацию HSTS. В Chrome вы можете получить эту ошибку на localhost. Если вы развернули HSTS на реальном сайте для конечных пользователей, может быть невозможно исправить ошибки, которые они имеют, в зависимости от размера вашей аудитории. Каждому пользователю необходимо удалить локальные настройки HSTS или дождаться истечения срока их действия в соответствии с установленным максимальным возрастом. Также обратите внимание, что если веб-сайт все еще обслуживает заголовок HSTS, ваш браузер сохранит его, как только вы снова заходите на сайт. Поэтому вы должны сначала прекратить отправку этого заголовка, если вы не хотите, чтобы ошибка повторялась. Ни Chrome, ни Firefox не имеют уникальный код ошибки для HSTS-ошибок, но страницы межстраничных ошибок будут содержать информацию о HSTS.

Удалить настройки HSTS

Обратите внимание, что эти инструкции в основном полезны разработчикам, которые тестировали HSTS, и теперь необходимо удалить настройки. Для веб-сайта, который вы не контролируете, удаление локальных настроек HSTS вашего браузера не поможет, если веб-сайт все еще служит заголовку HSTS, так как ваш браузер просто сохранит настройки снова при каждом посещении / обновлении. В Chrome вы можете увидеть сообщение об ошибке «NET::ERR_CERT_COMMON_NAME_INVALID». Если вы нажмете «Дополнительно» в Chrome, сообщение об ошибке будет включать «Вы не можете сразу же посетить домен.com, потому что веб-сайт использует HSTS». Это подтвердит ошибку HSTS. На локальном хосте вы можете увидеть сообщение об ошибке «Этот сайт не может обеспечить безопасное соединение». В Firefox будет сообщение: «Этот сайт использует HTTP Strict Transport Security (HSTS), чтобы указать, что Firefox может подключаться к нему только безопасно. В результате невозможно добавить исключение для этого сертификата ». Если вы определили, что ошибка связана с кэшированными настройками HSTS, выполните следующие инструкции для устранения ошибки:

Как удалить настройки HSTS в Chrome:

1. Перейдите к chrome://net-internals/#hsts

Это пользовательский интерфейс Chrome для управления локальными настройками HSTS вашего браузера.

2. Во-первых, чтобы подтвердить, что настройки HSTS домена записаны в Chrome, введите имя хоста в разделе «Домен запроса» внизу страницы. Нажмите Запрос. Если в поле Запрос появится найденный текст с информацией о настройках, настройки HSTS домена будут сохранены в вашем браузере.

Обратите внимание на то, что это очень чувствительный поиск. Введите только имя хоста, например www.example.com или example.com, без протокола или пути.

3. Введите одно и то же имя хоста в раздел «Удалить домен» и нажмите.

Ваш браузер больше не будет устанавливать HTTPS-соединение для этого сайта! Вы можете проверить, правильно ли он работает, обновив или переместившись на страницу. Обратите внимание, что в зависимости от настроек HSTS, предоставляемых сайтом, вам может потребоваться указать правильный субдомен. Например, настройки HSTS для staging.yoursite.com могут быть отделены от вашего сайта, поэтому вам, возможно, потребуется повторить шаги.

Как удалить настройки HSTS в Firefox:

Мы рассмотрим два разных метода удаления настроек HSTS в Firefox. Первый метод должен работать в большинстве случаев — но мы также включили ручной вариант, если это необходимо.

Закройте все открытые вкладки в Firefox. Откройте окно полной истории с помощью сочетания клавиш Ctrl + Shift + H (Cmd + Shift + H на Mac). Вы должны использовать это окно или боковую панель для доступных ниже параметров. Найдите сайт, на котором хотите удалить настройки HSTS, — вы можете искать сайт в правом верхнем углу, если это необходимо. Щелкните правой кнопкой мыши сайт из списка элементов и нажмите «Забыть об этом сайте». Это должно очистить настройки HSTS (и другие данные кэша) для этого домена. Перезагрузите Firefox и зайдите на сайт. Теперь вы можете посетить сайт через HTTP / сломанный HTTPS. Если эти инструкции не работают, вы можете попробовать следующий ручной метод:

Ручной метод для Firefox

Если вышеуказанные шаги не работают, вы можете попробовать следующий метод. Начните с поиска папки профиля Firefox через проводник операционной системы. Вы можете найти эту папку через Firefox, перейдя по about:support.

На половине страницы в разделе «Основы приложений» вы увидите папку «Профиль». Нажмите «Открыть папку». Теперь закройте Firefox, чтобы браузер не перезаписывал какие-либо настройки, которые мы собираемся изменить. В папке «Профиль» найдите и откройте файл SiteSecurityServiceState.txt. Этот файл содержит кэшированные настройки HSTS и HPKP (Key Pinning, отдельный механизм HTTPS) для доменов, которые вы посетили. Это может быть очень дезорганизовано. Найдите домен, для которого необходимо удалить настройки HSTS и удалить его из файла. Каждая запись содержит имя домена. Удалите всю цель записи с начала нужного имени домена в следующий указанный домен. В качестве альтернативы вы можете переименовать существующий файл из .txt в .bak (чтобы сохранить существующий файл на всякий случай) и позволить Firefox создавать совершенно новый файл при следующем запуске.

Перевод с английского и составитель статьи — Михаил Губин

Оригинал: TheSSLStore