KeyStartSSLをEngineYardで使うSSLの設定といえば次ハマったらTATOOしかない。とそれなりの覚悟が必要なことでも知られていますが、子供もいるのでプールや銭湯に入れるように、ブログに書いて次からハマらないようにします。StartSSLという格安のSSL証明書を発行するサービスがあります。いえ、嘘をつきました。格安じゃなくて、無料です。全てのブラウザでサポートされているわけではありませんが、サービスによっては十分なのではないでしょうか。自分で設定する場合にはStartSSLのマニュアルを参照すればだいたい事足りるのですが、EngineYardのSSLはお作法が決まっているのでメモしておきます。いえCSRの作成なんかはルーティン作業なので詳細は省きます。server.csrStartSSLは1024bitは脆弱すぎるので受け付けません。作成したcsrで証明書を取得します。StartSSLの申し込み手続きが完了すると、ca_root.pem、ca.pem、ssl.crtが手に入ります。EngineYardのSSLの登録フォームも名称を除けば3つの入力欄があるのでちょうど良さそうですが、そうは問屋がビジネスしません。ここには、上からssl.crt、CSRを作成したときに用意した秘密鍵を入力します。秘密鍵はパスフレーズを設定してはいけませんので、解除しておきます。server_no_pass.key残る一つの入力欄ですが、ここではまりました。直感的には中間証明書を入力すれば済みそうなのですが、それだけだと不十分です。EngineYardでは特殊なことをしない限りnginxを利用することになりますが、nginxは中間証明書をサポートしないので、サーバ証明書と結合してあげないといけません。StartSSLの中間証明書はこちらから入手できます。1であればこちらをダウンロードします。最後の欄にはこの中間証明書と、先ほど入手したca.pemを結合します。unite.csrEngineYardのmainのChefが実行されると、この入力欄の一番上と一番下が結合されて1つのcrtファイルに加工されます。nginxの設定ファイルにはこの結合されたファイルが指定されることになります。ファイルは/etc/nginx/ssl/以下(/data/nginx/sslとしてバックアップ対象にもなっているようです)に保存されますので、もし心配な場合は上のコマンドをサーバ内で実行して自分で試してもいいでしょう。configtestが通れば少なくとも起動はします。これで3つの入力欄が埋まりましたので、保存してアプリケーション画面でSSLを設定、Applyを実行すれば反映されます。設定されたかどうかSSLのチェッカーなどで確認してみましょう。2013SwiftとTitanium。