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。
- 這是正確的做法,並
- 如果是這樣,我怎麼將這些設置爲
config/environments/staging.rb
?
您應該使用反向代理(nginx或apache)來解密SSL,並完全將您的應用從SSL證書和密鑰解耦。 – tpbowden
正如tpbowden所說,你想用一個nginx/apache反向代理終止你的SSL連接。在10多年裏,我一直在構建Rails應用程序,從來沒有一次直接在Rails中配置SSL。使用像乘客這樣的東西可能是你抵抗力最小的路徑。 –
好的與Nginx一起 - 也可能會通過Webbrick與Unicorn一起使用。 –