ひょんなことからhttps設定することになったので、その手順をメモ書き程度に
1.何はともあれ証明書の購入
購入はどのサイトでも良いけど、自分は↓こちらを使いました。
2. CSRを作成
証明書購入をしたら、証明書を有効にするためにCSRという、認証局に「このサーバーで使いますよ〜」「サーバ証明書を発行するための署名要求」を作成する必要がある。
3.作成したCSRファイルをSSLストアに登録、使用者情報も登録、承認メールを受け取る
↓こんな感じのやつ
4.受け取った承認メールの承認ボタンを押す
5. 承認ボタンを押したら、WEBサーバ証明書が送られてくるので、/usr/local/ssl配下に張り付け。
貼付ける部分は上記gistの通り、
-----BEGIN CERTIFICATE-----から
-----END CERTIFICATE-----まで。
ファイル名は適当で良いが、覚えやすいようにmy.crtとする。
6. 中間証明書とクロスルート証明書を合わせたmy.chain.crtを作成
apacheは中間証明書とクロスルート証明書をで良い(らしい)
↓ファイル名は単純にこんな感じで良い
7.apacheのconfファイルの設定
apacheにssl用の設定ファイルがあるので、そいつをいじる。
基本はそのままで良いが、いじる部分はVirtualHost内の項目と
先ほど設定した証明書類の置き場所の設定だけ。
8.EC2のsecurity groupにhttps(port:443)を追加
9. config/application.rbにsslにconfig.force_ssl = trueを追加
10.apache再起動
httpの設定は難しいと思ってたけど、案外簡単だった。
スケールアウトして運用している場合の設定まではいきつかなかったけど、まずは単体サーバへの適用は学習できたので、次からはスムーズにいけるはず。
参考サイト
http://blog.genies-ag.jp/2011/08/amazon-ec2-amazon-linux-ssl.html
http://valuessl.net/support/etc/rapidsslre_cross/apache1.php