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