[使用CloudFlare SSL的Rails 4上的force_ssl重定向循环

问题描述 投票:6回答:2

[通过force_ssl方法(使用CloudFlare的一键式SSL功能实现SSL)实施ssl时,我在Rails 4应用程序上获得重定向循环。

ruby-on-rails ruby ssl https cloudflare
2个回答
13
投票

当我在CloudFlare中从“灵活”设置切换为“完全” SSL设置时,这种情况就停止了。


0
投票

Cloudflare试图通过HTTP强制连接,因为您的服务器没有HTTPS,但是您的应用正在强制使用SSL。

在特定情况下会发生这种情况:

    您的Cloudflare(CF)SSL设置为Flexible,并且CF和Heroku之间允许使用HTTP。
  1. 您的服务器或Heroku实例的SSL未设置,因此它强制HTTP之间的连接
  • 会发生什么:

      您通过HTTPS连接到域
  • Cloudflare介入以处理SSL部分,并尝试通过纯HTTP从服务器获取应用程序
  • 服务器看到通过HTTP的连接并重定向到HTTPS
  • 转到步骤1
  • 这将导致无限重定向循环。

    解决

    将您的应用程序服务器升级到HTTPS,这解决了重定向问题。然后,为了安全起见,将Cloudflare切换为Full

    First:我在服务器上配置了SSL。就我而言,我使用的是Heroku,它可以使用Let's Encrypt自动设置SSL。如果没有,则直接使用“让我们加密”。 Cloudflare还提供了自签名的原始证书,但是当“轻松加密”变得容易又免费时,何必麻烦呢?

    第二:

    通过将以下内容添加到production.rb],我将我的应用配置为强制执行SSLconfig.force_ssl = true

    第三:

    由于我不再需要服务器与Cloudflare之间的HTTP连接,因此将其从Flexible切换为Full。如果已使用“让我们加密”或CA来供应服务器的证书,则可以切换到Flexible (Strict)
  • © www.soinside.com 2019 - 2024. All rights reserved.