Posted at

AWSでhttps化

AWS上で動いてるシンプルなWebアプリケーションをhttps化させたのでその手順を残しておきます。


構成図

目指すインフラ構成は下図のとおりです。

https通信.png

RDSは今回直接的に関係ないです。


必要な手順


  • AWS Certificate Manager(ACM)でSSL証明書の発行

  • ALBにhttpsの設定を入れて作成

  • Route53でAレコードのエイリアスを作成


AWS Certificate Manager(ACM)でSSL証明書の発行

まず証明書が必要になるのでAmazon Certificate Manager(ACM)を使って作成します。

証明書のプロビジョンニングから進みます。

スクリーンショット 2019-05-11 19.34.53.png

パプリック証明書のリクエストにチェックして証明書のリクエストボタンを押す

スクリーンショット 2019-05-11 19.37.16.png

登録したいドメインを入力します。特定のサブドメイン以外も含めておきたい場合は添付画像のようにワイルドカードを指定しておきます

スクリーンショット 2019-05-11 19.39.01.png

ネームサーバにRoute53で設定したものを使ってる時はDNSの検証を選ぶと楽に進められます。

スクリーンショット 2019-05-11 19.39.21.png

確認画面で問題ないことが確認できたら次の画面に進みます。

次は検証のための設定画面です。

テストドメインでやったら出ませんでしたが、指定したドメインに関連するレコードセットが存在すればそこに直接追加するボタンが出てくるはず(出現条件は不明)なのでそこから登録します。

スクリーンショット 2019-05-11 19.40.27.png

あとは検証が終わるまで待機です。


ALBにhttpsの設定を入れて作成

証明書ができたらロードバランサーに登録します。

今回はALBを使います。

スクリーンショット 2019-05-11 20.03.09.png

プロトコルにHTTPSを追加します。

スクリーンショット 2019-05-11 20.03.36.png

名前やサブネットの設定は適宜行ないます。

先ほど作成した証明書を選択します。

スクリーンショット 2019-05-11 20.04.13.png

セキュリティグループはhttpとhttpsの通信を許可する設定になっているものを選んだらOKです。

あとは各々の設定。

作成されたらDNS名を確認します。ここに記載があるものをRoute53に設定します。

スクリーンショット 2019-05-11 21.18.07.png


Route53でAレコードのエイリアスを作成

利用するホストゾーンに1つレコードセットを追加します。

先ほど出力されたDNS名をエイリアス先に指定します。

画像は編集画面ですが追加時も同じ画面がでます。

スクリーンショット 2019-05-11 21.23.15.png

あとは反映されたらAWS側で設定は完了です。


最後に

SSL証明書にはお金がかかりませんが、ALBを使うのにお金がかかってしまうので完全に無料というわけには行かないですが、この方法でhttpsが実現できます。

とても簡単なので試してみるには良い環境でした。