ElasticBeanstalkでSSLの時のポイント


基本上記にしたがってやれば良さそうです。キーなどは先に入手できればそれが使えそうですね。

キーの暗号形式によっては

A client error (MalformedCertificate) occurred when calling the UploadServerCertificate operation: Unable to parse key; the body is encrypted.

等と怒らられてしまう様子です。

こちらを参考にしてキーの形式を変換しました。具体的には下記を行っています。

openssl x509 -in yourDomain.crt -out yourDomain.pem -outform PEM
openssl rsa -in yourDomain.key -outform PEM -out yourDomain.pem.key

また、私の場合には中間証明書を作るのに下記の操作を行っています。
http://qiita.com/ms2sato/items/7f1d0707090f9f07c86c

これで無事に証明書をiamに登録出来ました。

あとはEC2のセキュリティグループに443指定するのと、Beanstalkのネットワーク設定でHTTPSを生かす&先に登録した証明書を設定すれば概ねOK。この辺はあまり困惑せずに出来そうな気がします。

※自分はRailsでconfig.force_sslしようと思ったらHealthチェックで失敗してしまったので、ログイン後のControllerの基底にforce_sslを付けて対応しました。

雰囲気こんな感じです。

class AuthenticatedController < ApplicationController
  force_ssl if Rails.env.production?
  before_action :authenticate_user!
end