有一个很好的选项来配置Rails应用程序:
config.force_ssl = true
但是,似乎只是将其设置为true并不会使HTTPS连接正常工作.更多 – 尝试(并失败)与Chrome连接到https://localhost:3000后,我将此选项设置为false,即使我写了http,Chrome仍会尝试打开https.
所以,几个问题:
– 如何强迫Chrome不再尝试https?
– 在我的Rails应用程序上启用SSL的正确方法是什么?
解决方法
首先,我应该说我没有尝试过,但Chrome仍然使用HTTPS主要有两个原因:
>使用HTTP Strict Transport Security标题:如果服务器设置了它们,则客户端(支持HSTS,如Chrome)意味着对所有后续请求到该主机的操作系统都会使用HTTPS.
>永久重定向.如果您获得的初始重定向使用“301 Moved Permanently”(而不是302)进行重定向,(*)浏览器应该记住它(“已为所请求的资源分配了一个新的永久URI以及此资源的任何未来引用应该使用其中一个返回的URI“).
一个可能的解决方案是清除浏览器中的缓存.
(*)This question似乎表明这个配置是Ruby on Rails的情况.