🐥
SSL証明書を作成してHTTPS通信できるようにする
はじめに
AWSのACMを使用してSSL証明書の発行を行います。
以前にアプリケーションを作成してありますので、こちらにSSL証明書を適用しHTTPS通信ができるようにします。
1.ACMで証明書を作成する
AWS Certificate Managerを起動し、証明書のリクエストを行います。

証明書タイプとしてパブリック証明書をリクエストします。
- ドメイン名
- 完全修飾ドメイン名 : enjine.f5.si(前回作成したドメイン)
- エクスポートを許可
- エクスポートを無効にする
- 検証方法
- DNS検証
- キーアルゴリズム
- RSA2048
2.CNAMEレコードの作成
続いてRoute53のホストゾーンにCNAMEレコードを作成します。
※証明書を作成すれば、関連ホストゾーンに自動でCNAMEレコードが作成されると思ってましたが、手動で登録する必要があるようです。
レコードをクイック作成
- レコード名 : ACMで控えたCNAMEレコード名
- レコードタイプ : CNAME
- 値 : ACMで控えたCNAME値(末尾のドットも必要)
- TTL : 300
- ルーティングポリシー : シンプルルーティング
※レコードが作成できたら、再度ACMから証明書を確認し、ステータスが発行済みになるのを確認します。
3.リスナールールの追加
ALBにHTTPS通信のリスナーとルールを追加します。ロードバランサーの「リスナーとルール」タブからリスナーの追加を行います。
- プロトコル : HTTPS
- ポート : 443
- アクションのルーティング : ターゲットグループへ転送
- ターゲットグループ : 作成したターゲットグループ
- デフォルト SSL/TLS サーバー証明書
- 証明書の取得先 : ACMから
- 証明書 (ACM から) : 作成したSSL/TLS証明書
- 証明書の取得先 : ACMから
さいごに
作成したドメインに無事HTTPS通信することができました。ロードバランシングもされている事を確認できます。


(補足)はまったこと
当初ターゲットグループにHTTPS通信の設定をしてしまったことで、503エラーとなってしまいました。エラーの解消方法を調べていく上で、ターゲットグループで「HTTPSプロトコル」を設定できるのは、バックエンド(=EC2インスタンス)がHTTPSで待ち受けている場合に限られている、ということを知りました。つまり、ターゲットグループにHTTPSを使うならEC2側が対応している必要があるということです。
ターゲットグループはELBがEC2に通信するのに必要な設定を施し、ロードバランサーのリスナーをHTTPS通信として設定する事で解決できました。
Discussion