小川伸一郎氏のRubyコラム『RailsでSSLを使う』
Rails技術者認定試験運営委員会のオーナーでもあるヒューマンリソシアが
私が企画した小川伸一郎氏のRubyコラム『RailsでSSLを使う』を公開しています。(バックナンバー公開)
###
ユーザの個人情報を入力させたり、 ログインするときにはSSLを使いたいという要望は多いと思います。 RailsでもSSLを使いたいという要望は少なくないと思います。 ではRailsでSSLを使いたいという場合にはどうすればよいでしょうか。
Railsアプリケーションでは、 ApacheやNginxといった ウェブサーバをフロントエンドに配置し、 古くはMongrelやThin、 最近ではPassengerや Unicornといったサーバプログラムを動かす アプリケーションサーバをその次に配置するのが一般的です。 例えばフロントエンドのウェブサーバでは 画像やスタイルシート、スクリプトファイルなどの静的ファイルを配信させ、 アプリケーションへのリクエストだけをアプリケーションに流すように 構築するパターンです。 この場合、 ウェブサーバ側でSSLのを受け付けるように設定して、 アプリケーションサーバへは特に暗号化しないでリクエストを 転送(フォワード)します。 こうすることで、 RailsやRubyでSSLの事を考えずとも良くなり、 また比較的重い処理であるSSLの暗号化と復号化の処理を ウェブサーバに分散できるため、効率が良い構成となります。
Railsではバージョン3.1からActionControllerでforce_sslというフィルターが 使えるようになっています。 これはSSLでのアクセスではない場合に、 プロトコルをhttps://に変更してリダイレクトするフィルターです。 例えばSessionsControllerでSSLを有効にするには、 以下のように設定します。
(この続きは以下のコラム本文をご覧ください)
http://resocia.jp/column/326/