你如何处理开发中的SSL?

时间:2010-01-22 16:24:04

标签: ruby-on-rails ssl https mongrel

我有一个应用程序,它将某些路由的HTTPS与ssl_requirement插件结合使用。它已经部署并且在生产中运行良好。

问题是在开发过程中如何最好地处理这个问题,因为目前我只是在攻击我的routes.rb以删除:requirements密钥,显然这不是很方便或优雅:

map.resource :session, :controller => 'session',
                       :only => [:new, :create, :destroy],
                       :requirements => { :protocol => 'https' }

理想情况下,我希望能够在Mongrel上开发我的应用程序的安全部分而不做任何更改。我怎样才能做到这一点?我正在使用Mac OS X.

2 个答案:

答案 0 :(得分:8)

不要担心开发中的SSL

对于开发环境IMO,您不需要运行SSL。这不值得花时间或麻烦,特别是随着更多人加入团队。关于您的路由,我只需将协议保留为开发环境中的http

protocol = Rails.env.development? ? "http" : "https"

map.resource :session, :controller => 'session',
                       :only => [:new, :create, :destroy],
                       :requirements => { :protocol => protocol }

现在, 需要测试您的SSL集成需要在暂存环境中进行测试 - 在部署到生产之前部署到的地方。您可以在此处准确复制生产环境。您的开发环境不需要以相同的方式匹配您的生产环境。

答案 1 :(得分:7)

由于您的rails应用程序变得更加复杂,并且您希望使用SSL等高级功能,因此最好切换到更贴近您的生产环境的开发环境。这将允许您创建自己的SSL证书并进行测试,以反映用户使用您的应用程序的方式。

我建议你转移到你在生产中使用的同一个网络服务器,你提到的是apache / passenger。

在相关问题中......您如何使用ssl管理测试环境?为此我正在做你正在做的路线。还有更好的方法吗?