ruby-on-rails-3 - 谷歌浏览器强制使用 HTTPS

标签 ruby-on-rails-3 http google-chrome https openstreetmap

我正在开发一个使用 SSL 连接的 Rails 应用程序。我目前正在使用第三方资源,即 js 和 css 文件来实现 map (OpenStreetMap)。我已经尝试将这些资源(js 和 css)导入我的应用程序,但 javascript 代码试图通过 HTTP 访问外部 WMS。

问题是当应用程序处于 HTTPS 时,Google Chrome 会阻止从 HTTP 访问第三方资源。

所以我在应用程序的某些页面上禁用了 SSL,并尝试按照我希望的方式强制使用 HTTP 或 HTTPS。

关注此博客:http://www.simonecarletti.com/blog/2011/05/configuring-rails-3-https-ssl/并且有效。

但是,当我使用 Google Chrome 将 HTTP 协议(protocol)强制用于将使用这些资源的页面时,它会强制 HTTPS 连接,从而导致无限循环。

如果我清除 Chrome 缓存(已经使用 HTTPS 访问了同一页面)以便通过 HTTP 访问它,它就可以工作。但是,如果我访问了 HTTPS 页面并尝试通过 HTTP 访问,Chrome 会强制 HTTPS 连接,从而导致无限循环。

问题是:我可以在请求中设置什么让 Chrome 接受连接吗?

问候

最佳答案

我一直在对此进行一些研究,结果证明在 Rails 3 上打开 force_ssl = true 会导致应用程序发送 HSTS header 。这里有一些关于它的信息:How to disable HTTP Strict Transport Security?

本质上,HSTS header 告诉 Chrome(和 Firefox)在特定时间内仅通过 HTTPS 访问您的网站。

所以...我现在为您提供的答案是,您可以通过在 Chrome 浏览器中转到 about:net-internals 并删除 HSTS 状态来清除自己的 HSTS 设置。

我认为这里的答案可以帮助您:Rails: activating SSL support gets Chrome confused

关于ruby-on-rails-3 - 谷歌浏览器强制使用 HTTPS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14831863/

相关文章:

ruby-on-rails - Rails 的优惠券/促销代码解决方案(gem)?

ruby - 在 Rails 3 中学习 ActiveResource 的资源 - 以务实的方式

angularjs - 向 logstash 发出发布请求时出现 CORS 错误

java - 状态码 404,ai.api.AIServiceException : Uri is not found or some resource with provided id is not found

google-chrome - 在 Chrome 中看不到窗口大小

jquery - Chrome 和 safari 中自定义日期选择器的问题

html - Chrome : Div has white line in center

ruby-on-rails - 如果我想创建一个 ruby​​/rails gem 来管理 CSS 类优先级,我应该从哪里开始?

ruby-on-rails - Rails 时区问题

php - 如何使用PHP通过HTTP PUT接收文件