1

我试图在子域上实现 https。我已经包含了 SSL_requriment插件

我的应用程序控制器有两个语句:

  include SslRequirement
  ssl_required if ENV["RAILS_ENV"] == "production"

我已经生成了密钥、csr 和 crt 并在 apache 配置文件中指定了这个:

    <VirtualHost *:80>
    ServerName app.my_app.com
    DocumentRoot /home/me/my_app/production/current/public
    </VirtualHost>
    <VirtualHost *:443>
    ServerName app.my_app.com
    DocumentRoot /home/me/my_app/production/current/public
    SSLEngine on
    SSLCertificateFile /home/me/my_app/production/shared/plusrev.crt
    SSLCertificateKeyFile /home/me/my_app/production/shared/plusrev.key
    </VirtualHost>

我的子域仍然没有重定向到 https。我缺少的任何东西。

4

3 回答 3

1

查看这篇文章: http ://www.simonecarletti.com/blog/2011/05/configuring-rails-3-https-ssl/

于 2012-04-11T10:27:38.800 回答
0

没有传递给 ssl_required 的操作。但是我想你想添加

def ssl_required?
  true
end

到您的控制器,因此默认情况下所有操作都需要 https。

插件 API 并不明显,因此请查看代码。

于 2012-04-11T09:27:50.227 回答
0

这是解决方案。

采用

 gem 'grosser-ssl_requirement', :require => 'ssl_requirement'

在你的 gemFile 中。这是宝石指南

在您的应用程序控制器中:

 include SslRequirement
 ssl_required :all if ENV["RAILS_ENV"] == "production"
于 2012-04-11T09:40:50.377 回答