谷歌Chrome强制HTTPS

时间:2013-02-12 11:48:29

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

我正在开发一个使用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/并且有效。

但是当我强制使用谷歌浏览器将HTTP协议强制用于使用这些资源的页面时,它会强制HTTPS连接导致无限循环。

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

问题是:我是否可以在请求中设置导致Chrome接受连接的内容?

此致

1 个答案:

答案 0 :(得分:10)

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

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

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

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