如何在Rails 3.0中将SSL选项传递到"rails server"?

est*_*ner 6 ssl https rack ruby-on-rails-3

有没有办法将SSL选项传递到"rails服务器"(在Rails 3.0.0上),使用自定义Rack配置或类似的东西?我正在尝试做两件事:

  1. 使Cucumber能够运行涉及安全和非安全URL的测试,以及
  2. 为新开发人员简化一些事情,因此他们不必设置Apache并配置所有SSL /证书的东西,甚至可以编写一行代码.

在2.3.8上,我们有一个分叉的脚本/服务器,可以在第二个端口上启动一个特殊的WEBrick,并带有所有适当的SSL选项.当然,当我尝试升级到Rails 3时会爆炸,所以我试图弄清楚如何解决这个问题,理想情况下这样做不需要任何东西.

在我们的分叉脚本/服务器中,我们设置了如下选项:

:SSLEnable        => true,
:SSLVerifyClient    => OpenSSL::SSL::VERIFY_NONE,
:SSLPrivateKey        => OpenSSL::PKey::RSA.new(File.open(current_dir + "/config/certs/server.key").read),
:SSLCertificate         => OpenSSL::X509::Certificate.new(File.open(current_dir + "/config/certs/server.crt").read),
:SSLCertName    => [ [ "CN", WEBrick::Utils::getservername ] ]
Run Code Online (Sandbox Code Playgroud)

但我不知道如何在新框架中这样做.

谢谢你的帮助!

phl*_*per 5

看看Thin服务器代替WEBrick.使用Thin有很多好处,我不能在这里列出它们,但它应该解决您的问题,因为它支持SSL.

启动时thin,传递以下选项:

SSL options:
    --ssl                        Enables SSL
    --ssl-key-file PATH          Path to private key
    --ssl-cert-file PATH         Path to certificate
    --ssl-verify                 Enables SSL certificate verification
Run Code Online (Sandbox Code Playgroud)

在生产中,理想情况下,您希望在Nginx或Apache层处理SSL,但这应该可以满足您的开发需求.