有没有办法使用自定义 Rack 配置或类似的东西将 SSL 选项传递到“rails server”(在 Rails 3.0.0 上)?我正在尝试做两件事:
- 使 Cucumber 能够运行涉及安全和非安全 URL 的测试,并且
- 让新开发人员的工作变得简单,这样他们甚至不必在编写一行代码之前设置 Apache 和配置所有 SSL/cert 内容。
在 2.3.8 上,我们有一个分支脚本/服务器,它会在第二个端口上启动一个特殊的 WEBrick,并提供所有适当的 SSL 选项。当然,当我尝试升级到 Rails 3 时失败了,所以我试图弄清楚如何解决这个问题,并且最好以不涉及任何分支的方式进行。
在我们的 fork 脚本/服务器中,我们设置如下选项:
: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 ] ]
但我不知道如何在新框架中做到这一点。
感谢您的帮助!
看看 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
在生产中,理想情况下您希望在 Nginx 或 Apache 层处理 SSL,但这应该可以满足您的开发需求。
我是一名优秀的程序员,十分优秀!