代码之家  ›  专栏  ›  技术社区  ›  John Topley

在开发中如何处理SSL?

  •  12
  • John Topley  · 技术社区  · 15 年前

    我有一个应用程序将HTTPS与 ssl_requirement 插件。它已经部署好,在生产中工作正常。

    问题是如何在开发中最好地处理这个问题,因为目前我只是在 routes.rb 去掉 :requirements 很明显这不是很方便或优雅:

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

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

    2 回复  |  直到 15 年前
        1
  •  7
  •   Ryan McGeary    15 年前

    在开发中不要担心SSL

    对于开发环境,imo,您不需要运行ssl。这不值得花时间和麻烦,尤其是当更多的人加入团队时。关于你的路线,我只想把协议 http 在开发环境中:

    protocol = Rails.env.development? ? "http" : "https"
    
    map.resource :session, :controller => 'session',
                           :only => [:new, :create, :destroy],
                           :requirements => { :protocol => protocol }
    

    现在,你在哪里 需要测试您的SSL集成是否在 分期 环境——在部署到生产环境之前部署到的位置。这就是您想要准确复制生产环境的地方。您的开发环境不需要以同样的方式匹配您的生产环境。

        2
  •  7
  •   John Topley    15 年前

    随着Rails应用程序变得越来越复杂,您希望使用高级功能(如SSL),最好的选择是切换到与生产环境更为匹配的开发环境。这将允许您创建自己的SSL证书和测试,其方式将与您的用户使用应用程序的方式相同。

    我建议移动到生产中使用的同一个Web服务器,您提到的是Apache/Passenger。

    在相关问题中…如何使用SSL管理测试环境?为此,我现在和你一样修改我的路线。有更好的方法吗?