12

我有一个应用程序将 HTTPS 与ssl_requirement插件一起用于其某些路由。它已部署并且在生产中运行良好。

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

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

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

4

2 回答 2

8

开发中不用担心 SSL

对于开发环境,IMO,您不需要运行 SSL。这不值得花时间或麻烦,尤其是当更多人加入团队时。关于您的路线,我只是将协议保留http在开发环境中:

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

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

现在,您确实需要在暂存环境中测试 SSL 集成——即在部署到生产环境之前部署到的地方。这是您想要准确复制生产环境的地方。您的开发环境不需要以同样的方式匹配您的生产环境。

于 2010-01-22T19:46:01.230 回答
7

随着您的 Rails 应用程序变得越来越复杂,并且您希望使用 SSL 等高级功能,您最好的选择是切换到与您的生产环境更匹配的开发环境。这将允许您创建自己的 SSL 证书并以反映用户使用应用程序的方式的方式进行测试。

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

在一个相关问题中......您如何使用 ssl 管理您的测试环境?为此,我目前正在像您一样破解我的路线。有没有更好的办法?

于 2010-01-22T18:33:30.047 回答