Подтвердить что ты не робот

Как отключить HTTP Strict Transport Security?

У меня было приложение Rails с config.force_ssl = true, но теперь я не хочу шифрования SSL, но мое приложение по-прежнему перенаправляется на https. Я читал, что это проблема HTTP Strict Transport Security на Apache. Как отключить его?

4b9b3361

Ответ 1

Это не проблема с Apache, но с тем, что Rails отправляет заголовок HSTS.

В Chrome вы можете очистить состояние HSTS, перейдя в about:net-internals, как описано в ImperialViolet: пользовательский интерфейс HSTS в Chrome. Вы также можете очистить кеш, поскольку config.force_ssl = true также использует перенаправление 301 (постоянное).

Кроме того, в соответствии с этим ответом вы также можете отправить свое приложение STS-заголовку с max-age = 0. В контроллере:

response.headers["Strict-Transport-Security"] = 'max-age=0'

Ответ 2

Просто хотел указать на @Bruno ответ и предложения @JoeVanDyk верны и могут применяться вне контекста Rails/Apache. Я использую PHP и Nginx. PHP не имеет к этому никакого отношения в моем случае, но здесь шаги с Nginx:

//sorry here the nginx.conf part first, can't figure out how to mix multi-line 
//code with an ordered list

server {
   #...
   #change:
   # add_header  Strict-Transport-Security "max-age=315360000; includeSubdomains";     
   #to:
   add_header  Strict-Transport-Security "max-age=0;";
   #...
}
  • очистите "историю браузера". Чтобы уточнить предложение @JoeVanDyk, я думаю, вам нужно очистить "историю просмотров", поскольку очистка кеша не работает для меня (протестировано в Chrome/Firefox, добавьте комментарии, если вы знаете больше).

  • nginx.conf файл (см. код выше)

  • перезапустить сервер

    [email protected]:~# /etc/init.d/nginx restart.

После этого вы можете вернуть команду nginx add_header Strict.. в то, что вы ранее имели. Просто повторите шаги 1-3 снова.

Ответ 3

Фигурный id предлагает немного подумать об этом. Установка времени кеша в 0 - лучшая ставка, и если вы отключите его, вам нужно оставить его на 0 в течение недели, чтобы очистить браузеры клиентов. Если вам просто нужно очистить HSTS в хроме (для вашего собственного браузера), вы можете использовать chrome://net-internals/#hsts в адресной строке, чтобы очистить кеш для вашего сайта в вашем конкретном браузере. В сочетании с нижним "дверным проемом" это становится полезным.

Вы можете установить временные режимы HSTS, установив/подменяя пользовательский заголовок = > . В принципе, если существует специальный заголовок запроса, и он соответствует ключу, установите HSTS со временем кеша, что вам нужно. Это позволит вам включить или отключить HSTS для всего трафика, кроме вас. Полезно для тестирования HSTS до того, как вы сможете глобально включить (чтобы все активы загружались). Также полезно, если вы хотите временно очистить кэш клиента, пока что-то отремонтировано (оставив вам место для теста).

Ответ 4

Я обнаружил, что не смог удалить запись HSTS в Chrome, поскольку я использовал IP-адрес для разработки. Кажется, я не смог удалить chrome://net-internals/#hsts, чтобы удалить запись. Я обнаружил, что Chrome хранит записи в. /AppData/local/Google/Chrome/User Data/Default/TransportSecurity, поэтому я просто удалил файл. Он, конечно, удаляет все запросы HSTS, но я подозреваю, что они будут перестроены с течением времени.