0

如何将 www.example.com 重定向到https://www.example.com

我正在开发中执行此操作,并且正在使用自签名证书。我config.force_ssl = true在我的 application.rb 中添加并在我的应用程序控制器中使用此方法添加了一个 before_filter 回调:

def redirect_secure
    redirect_to protocol: "https" if request.protocol == "http" 
end
4

1 回答 1

1

对于用于开发的服务器 ssl 证书配置,请将以下代码添加到 script/rails 文件中,

module Rails
    class Server < ::Rack::Server
        def default_options
            super.merge({
                :Port => 3445,
                :environment => (ENV['RAILS_ENV'] || "development").dup,
                :daemonize => false,
                :debugger => false,
                :pid => File.expand_path("tmp/pids/server.pid"),
                :config => File.expand_path("config.ru"),
                :SSLEnable => true,
                :SSLVerifyClient => OpenSSL::SSL::VERIFY_NONE,
                :SSLPrivateKey => OpenSSL::PKey::RSA.new(
                       File.open("/home/mohanraj/myCA/server_key.pem").read),
                :SSLCertificate => OpenSSL::X509::Certificate.new(
                       File.open("/home/mohanraj/myCA/server_crt.pem").read),
                :SSLCertName => [["CN", WEBrick::Utils::getservername]]
            })
        end
    end
end

注意:请为 ssl 文件提供正确的路径。

请按照此链接进行重定向http://www.railway.at/2013/02/12/using-ssl-in-your-local-rails-environment/

于 2013-05-02T10:10:34.537 回答