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

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

Ответы на вопрос(4)

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

Решение Вопроса

а с тем фактом, что 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'
 wutzebaer19 авг. 2015 г., 14:00
это работа для вас с браузерами Chrome?
 Stefan Hendriks10 янв. 2014 г., 12:00
стоит упомянуть разработчиков :) Спасибо за этот ответ @ Bruno
 TheConstructor12 февр. 2014 г., 11:46
Это в спецификации HSTS: Tools.ietf.org / html / ...
 Joe Van Dyk30 авг. 2012 г., 23:48
Должно быть задокументировано, что после того, как вы включили опцию 'force_ssl' в Rails, единственный способ отключить ее - это заставить всех ваших посетителей очистить кеш браузера. :
 Ali06 нояб. 2013 г., 17:00
Если бы это было не так, вы были бы уязвимы для взлома SSL, который HSTS предназначен для смягчения. Ничего общего с Rails.

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

//sorry here's 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 (см. код выше)

restart сервер

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

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

 code ninja04 сент. 2014 г., 14:56
Я должен добавить, что вам не нужно перезагружать, а перезагружать. Например./etc/init.d/nginx reload

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

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

 Pacerier08 нояб. 2015 г., 01:42
Но как мог пользователь сам редактировать его на стороне клиента?
 Pacerier06 нояб. 2015 г., 11:52
Как вы устанавливаете «время кэширования»? Там нет варианта наchrome://net-internals/#hsts
 dhaupin06 нояб. 2015 г., 17:56
@ Pacerier Ах, хром может очистить HSTS, но не может установить время кеширования. Время кэширования исходит из заголовка HSTS origin / site. Отчасти это может выглядеть так:strict-transport-security:max-age=15552000 ... тебе нужно сказатьstrict-transport-security:max-age=0 чтобы отключить HSTS для клиентов и стереть их перенаправления (или разрешить им соединяться с недействительным SSL).
 dhaupin08 нояб. 2015 г., 04:42
@ Pacerier Хмм, я не уверен, что вы могли бы перехватить ответ от веб-сайта до того, как браузер установил его, а также включить / подделать этот заголовок. Честно говоря, я никогда не экспериментировал с этим, но это может быть осуществимо с помощью какого-то инструмента, может быть?

Ваш ответ на вопрос