“config.force_ssl = true”不强制HTTPS

时间:2011-10-16 19:53:17

标签: ssl https ruby-on-rails-3.1

我正在运行Rails 3.1并尝试将上面的行放在development.rb和application .rb中(不是同时进行)但它似乎没有做任何事情。我的请求仍在使用HTTP。这是否意味着强制所有请求使用HTTPS?我敢肯定我错过了一些非常明显的东西,但不能为我的生活想到什么 - 是新手也无济于事。

非常感谢任何帮助。

干杯, 达尼。

2 个答案:

答案 0 :(得分:1)

它不会在本地工作,你有部署吗?

答案 1 :(得分:1)

如果您的本地服务器(webrick?)配置为使用SSL,工作,下面是通过script/rails执行此操作的一种方法:

#!/usr/bin/env ruby.exe
# This command will automatically be run when you run "rails" with Rails 3 gems installed from the root of your application.

# require 'rubygems'
require 'rails/commands/server'
require 'rack'
require 'webrick'
require 'webrick/https'

module Rails
    class Server < ::Rack::Server
        def default_options
            super.merge({
                :Port => 3000,
                :SSLEnable => false, # set to true to automatically generate SSL cert
                :SSLVerifyClient => OpenSSL::SSL::VERIFY_NONE,
                #:SSLCertificate => OpenSSL::X509::Certificate.new(File.open("ssl.crt").read),
                :SSLCertName => [["CN", WEBrick::Utils::getservername]]
            })
        end
    end
end

APP_PATH = File.expand_path('../../config/application',  __FILE__)
require File.expand_path('../../config/boot',  __FILE__)
require 'rails/commands'