是否有必要使用force_ssl?或者SSL应该在负载均衡器处终止?

时间:2015-06-03 03:35:43

标签: ruby-on-rails ruby-on-rails-4 ssl amazon-web-services load-balancing

在AWS OpsWorks上。我使用的是ELB,它有我的CA的SSL证书。

第一个访问点始终是负载均衡器(ELB)。 ELB将流量定向到实例。每个实例都有一个Rails应用程序,Unicorn等的副本。

有一点需要注意。无法直接访问ELB背后的实例。

此时,我需要在Rails中force_ssl吗?我听说在边界(ELB)终止SSL很常见。

据我所知,force_ssl给出以下内容:

  1. 自动将流量从http重定向到https。
  2. 将Cookie标记为安全和一些额外的保护(即针对MITM攻击)。
  3. http://api.rubyonrails.org/classes/ActionController/ForceSSL/ClassMethods.html仅表示http到https重定向。

    What does force_ssl do in Rails?第二个答案表明force_ssl不仅仅是重定向。

    如果我决定不使用force_ssl,我可以通过编写Nginx定义来管理重定向。

    鉴于这种情况,感觉强制通过Rails强制SSL已经过时了,因为SSL协商已经在ELB中进行了。 force_ssl还需要吗?还有其他好处吗?

1 个答案:

答案 0 :(得分:0)

如果您在ELB级别终止SSL,则不需要它。 (您希望获取http流量而不是重定向)。

请记住,在这种情况下,ELB和后端实例之间的流量将通过HTTP(即未加密)。这对大多数情况都很好。