AWS上で動いてるシンプルなWebアプリケーションをhttps化させたのでその手順を残しておきます。
構成図
目指すインフラ構成は下図のとおりです。
RDSは今回直接的に関係ないです。
必要な手順
- AWS Certificate Manager(ACM)でSSL証明書の発行
- ALBにhttpsの設定を入れて作成
- Route53でAレコードのエイリアスを作成
AWS Certificate Manager(ACM)でSSL証明書の発行
まず証明書が必要になるのでAmazon Certificate Manager(ACM)を使って作成します。
証明書のプロビジョンニングから進みます。
パプリック証明書のリクエストにチェックして証明書のリクエストボタンを押す
登録したいドメインを入力します。特定のサブドメイン以外も含めておきたい場合は添付画像のようにワイルドカードを指定しておきます
ネームサーバにRoute53で設定したものを使ってる時はDNSの検証を選ぶと楽に進められます。
確認画面で問題ないことが確認できたら次の画面に進みます。
次は検証のための設定画面です。
テストドメインでやったら出ませんでしたが、指定したドメインに関連するレコードセットが存在すればそこに直接追加するボタンが出てくるはず(出現条件は不明)なのでそこから登録します。
あとは検証が終わるまで待機です。
ALBにhttpsの設定を入れて作成
証明書ができたらロードバランサーに登録します。
今回はALBを使います。
プロトコルにHTTPSを追加します。
名前やサブネットの設定は適宜行ないます。
先ほど作成した証明書を選択します。
セキュリティグループはhttpとhttpsの通信を許可する設定になっているものを選んだらOKです。
あとは各々の設定。
作成されたらDNS名を確認します。ここに記載があるものをRoute53に設定します。
Route53でAレコードのエイリアスを作成
利用するホストゾーンに1つレコードセットを追加します。
先ほど出力されたDNS名をエイリアス先に指定します。
画像は編集画面ですが追加時も同じ画面がでます。
あとは反映されたらAWS側で設定は完了です。
最後に
SSL証明書にはお金がかかりませんが、ALBを使うのにお金がかかってしまうので完全に無料というわけには行かないですが、この方法でhttpsが実現できます。
とても簡単なので試してみるには良い環境でした。