我有一个应用程序,它将某些路由的HTTPS与ssl_requirement插件结合使用。它已经部署并且在生产中运行良好。
问题是在开发过程中如何最好地处理这个问题,因为目前我只是在攻击我的routes.rb
以删除:requirements
密钥,显然这不是很方便或优雅:
map.resource :session, :controller => 'session',
:only => [:new, :create, :destroy],
:requirements => { :protocol => 'https' }
理想情况下,我希望能够在Mongrel上开发我的应用程序的安全部分而不做任何更改。我怎样才能做到这一点?我正在使用Mac OS X.
答案 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管理测试环境?为此我正在做你正在做的路线。还有更好的方法吗?