ruby-on-rails – 强制在欧盟地区运行的Heroku应用程序使用SSL

我正在努力为在Heroku(欧盟地区)上运行的rails应用强制执行SSL连接.

我已成功将cert(包含Heroku SSL加载项)添加自定义域(如果我明确声明https://..com它完美运行)

但我想将所有http请求重定向到https连接.

对于美国地区的应用,这需要将自定义域DNS记录指向.herokussl.com NOT .herokuapp.com.文件https://devcenter.heroku.com/articles/ssl-endpoint#dns-and-domain-configuration

对于欧盟地区的应用,自定义DNS记录仍应指向.herokuapp.com,认情况下,它似乎不会强制实施SSL连接.

因此,我的问题是:如何才能使我在欧洲运行的Heroku应用程序的所有连接都被强制运行SSL?

解决方法

production.rb
Rails.application.configure do
    config.force_ssl = true
end

这会将所有http流量重定向到https

编辑:值得注意的是,这是一个Rails的东西,而不是一个heroku的东西.

修订:

由于这个答案/问题经常被看到并被投票,因此在每个请求的控制器中也可以:

class AccountsController < ApplicationController
  force_ssl if: :ssl_configured?

  def ssl_configured?
    !Rails.env.development?
  end
end

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...