3

场景
我通过 nginx 运行 Phusion Passenger。
我已将 nginx 配置为使用 SSL 并将所有 HTTP 流量重新路由到 HTTPS。
我还需要在我的 Rails 应用程序中启用force_ssl选项吗?
如果是这样,为什么以及有什么优势?
如果我不启用它,我会带来哪些安全风险?

nginx配置:

server {
    listen              80; 
    server_name         myapp.com
    rewrite             ^ https://$server_name$request_uri? permanent;
}

server {
    listen              443 ssl;
    server_name         myapp.com;

    ssl_certificate     /etc/ssl/certs/nginx.pem;
    ssl_certificate_key /etc/ssl/certs/nginx.key;

    root /home/user/rails/app/public;

    passenger_enabled on;
}
4

1 回答 1

1

force_ssl 选项完成与 nginx 重写规则相同的事情,因此您不需要 force_ssl 选项。force_ssl 可以为您提供更多粒度,例如更容易在某些子域或某些部署环境中要求 SSL。如果您更愿意在 Rails 中而不是在 nginx 中进行这种配置,那也可能会更好。但是,它不会给您任何额外的安全性。

于 2013-11-03T23:54:06.197 回答