[英]force_ssl redirect loop on Rails 4 using CloudFlare SSL
使用force_ssl
方法(使用 CloudFlare 的一键 SSL 功能实现的 SSL)强制执行 ssl 时,我的 Rails 4 应用程序出现重定向循环。
当我在CloudFlare中从“灵活”切换到“完整”SSL设置时,这种情况就停止了。
Cloudflare 试图通过 HTTP 强制连接,因为您的服务器没有 HTTPS,但您的应用程序正在强制使用 SSL。
这发生在一组特定的情况下:
Flexible
,CF 和 Heroku 之间允许使用 HTTP。发生的事情是:
HTTPS
连接到域这会导致无限重定向循环。
将您的应用服务器升级到 HTTPS,这解决了重定向问题。 然后,为了安全起见,将 Cloudflare 切换到Full
。
第一:我在我的服务器上配置了 SSL。 就我而言,我使用的是 Heroku,它可以使用 Let's Encrypt 自动配置 SSL。 如果你不是,你会直接使用 Let's Encrypt。 Cloudflare 还提供自签名源证书,但既然 Let's Encrypt 既简单又免费,又何必费心呢。
第二:我将我的应用程序配置为通过将以下内容添加到production.rb
来强制使用 SSL
config.force_ssl = true
第三:由于我的服务器和 Cloudflare 之间不再需要 HTTP 连接,我将其从Flexible
切换到Full
。 如果您使用 Let's Encrypt 或 CA 来配置服务器的证书,则可以切换到Flexible (Strict)
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.