2016-02-25 27 views
0

我想告訴Rails 4應用程序在哪裏可以找到SSL證書。如何告訴我的SSL證書在哪裏的Rails 4應用程序?

WW得到它通過修改bin/rails工作,加入這個

if ENV['SSL'] == "true" 
    module Rails 
    class Server < ::Rack::Server 
     def default_options 
     super.merge({ 
      :Port => 443, 
      :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("/path/to/my/private/.key").read), 
      :SSLCertificate => OpenSSL::X509::Certificate.new(
          File.open("/path/to/my.cert").read), 
      :SSLCertName => [["CN", WEBrick::Utils::getservername]], 
     }) 
     end 
    end 
    end 
end 

都不錯,但我想在我的config/environments/staging.rb這些文件,而不是設置,我想這是不特定於Webbrick。

  1. 這是正確的做法,並
  2. 如果是這樣,我怎麼將這些設置爲config/environments/staging.rb
+1

您應該使用反向代理(nginx或apache)來解密SSL,並完全將您的應用從SSL證書和密鑰解耦。 – tpbowden

+1

正如tpbowden所說,你想用一個nginx/apache反向代理終止你的SSL連接。在10多年裏,我一直在構建Rails應用程序,從來沒有一次直接在Rails中配置SSL。使用像乘客這樣的東西可能是你抵抗力最小的路徑。 –

+0

好的與Nginx一起 - 也可能會通過Webbrick與Unicorn一起使用。 –

回答

0

共識從註釋是:

  1. 否,
  2. 看到1

感謝@tpbowden和@喬希 - deeden爲您快速反應。

+1

另外,如果你正在部署到Heroku,你可能想看看這個方便的教程:http://readysteadycode.com/howto-setup-ssl-with-rails-and-heroku – suranyami