7

我正在开发一个使用 SSL 连接的 Rails 应用程序。我目前正在使用第三方资源,即 js 和 css 文件来实现地图 (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 协议强制到将使用这些资源的页面时,它会强制 HTTPS 连接导致无限循环。

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

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

问候

4

1 回答 1

10

我一直在对此进行一些研究,结果发现打开force_ssl = trueRails 3 会导致应用程序发送一个 HSTS 标头。这里有一些关于它的信息:如何禁用 HTTP 严格传输安全性?

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

所以......我现在给你的答案是,你可以通过进入about:net-internalsChrome 浏览器并删除 HSTS 状态来清除你自己的 HSTS 设置。

我认为这里的答案可以帮助您:Rails:激活 SSL 支持让 Chrome 感到困惑

于 2013-02-14T03:40:03.950 回答