2013-02-12 6 views
7

Я разрабатываю приложение Rails, использующее SSL-соединение. В настоящее время я использую сторонние ресурсы, которые представляют собой js и css-файлы для реализации карты (OpenStreetMap). Я уже пытался импортировать эти ресурсы (js и css) в мое приложение, но код javascript пытается получить доступ к внешней WMS через HTTP.Google Chrome Force HTTPS

Проблема заключается в том, что Google Chrome блокирует доступ к сторонним ресурсам от HTTP, когда приложение находится в HTTPS.

Так что я отключен SSL на определенных страницах приложения и пытались заставить HTTP или HTTPS, как я желаю.

После этого блога: http://www.simonecarletti.com/blog/2011/05/configuring-rails-3-https-ssl/ и она работает.

Но когда я заставляю протокол HTTP на страницу, где эти ресурсы будут использоваться с помощью Google Chrome, он заставляет HTTPS соединение вызывает бесконечный цикл.

Если очистить кэш Chrome (которые уже получили доступ к той же странице с HTTPS) в доступе заказать его с помощью HTTP это работает. Но если я получил доступ к странице HTTPS и попытаюсь получить доступ через HTTP, Chrome заставляет соединение HTTPS приводить к бесконечному циклу.

вопрос: есть ли что-то я могу установить в запросе, который вызывает Chrome, чтобы принять соединение?

С уважением

ответ

10

Я делал некоторые исследования по этому вопросу, и оказывается, что включение force_ssl = true на Rails 3 вызывает приложение, чтобы отправить заголовок HSTS. Немного информации об этом здесь: How to disable HTTP Strict Transport Security?

По сути, заголовок HSTS сообщает Chrome (и Firefox) о доступе к вашему сайту только через HTTPS в течение определенного времени.

Итак, ответ, который у меня есть для вас, заключается в том, что вы можете очистить свой собственный параметр HSTS, перейдя в about:net-internals в браузере Chrome и удалив состояние HSTS.

Я думаю, что ответы здесь могут помочь вам: Rails: activating SSL support gets Chrome confused

+0

Спасибо Скандера M! Проблема была в HSTS. Я решил это, используя драгоценный камень rack-ssl-enforcer, заставляя HSTS истекать. Теперь я могу отключить HTTPS по адресам, которые я хочу, даже если кеш Chrome установлен для принудительного HTTPS. С уважением – user2064568