LoginSignup
2
1

More than 3 years have passed since last update.

【AWS】ACM+Route 53+ELB+EC2でSSL化に対応する

Posted at

現在、個人アプリを製作しており、
AWSの本番環境へのデプロイ及びDNS設定まで完了したので、今日はSSL化を行った。
全てAWS内で完結している為、作業はとてもシンプルだが、説明を省略している記事が多く少し迷う部分があったので、記録として残しておく。

前提

・EC2インスタンスでサーバー構築している
・Route53を使ってDNS設定をしている(ドメイン設定済み)
・ELB(ALB)を使用するので、その分の費用が発生する(を許容出来る)
・VPC構成はデフォルトのものを使用する
・とにかくサクッとSSL化したい人向け

ざっくり手順

  1. AWS Certificate ManagerでSSL証明書を取得する
  2. ELB(ALB)を設定する
  3. EC2のセキュリティグループ設定を確認する
  4. 接続確認

1. AWS Certificate ManagerでSSL証明書を取得する

まずはSSL証明書を取得します。
AWSコンソールでCertificate Managerの画面に遷移します。
スクリーンショット 2021-02-25 21.40.46.png

デフォルトでパブリック証明書のリクエストにチェックが入っています。
そのまま証明書のリクエストへ進みます。
スクリーンショット 2021-02-25 21.43.32.png
設定したいドメインを入力し、次へ進みます。
スクリーンショット 2021-02-25 21.46.32.png
Route53でDNS設定している前提なので、
検証方法はDNSの検証を選択した状態で次へ進みます。
スクリーンショット 2021-02-25 21.49.33.png
必要に応じてタグを設定しましょう。
スクリーンショット 2021-02-25 21.52.20.png
確定とリクエストを押します。
スクリーンショット 2021-02-25 21.53.33.png
検証状態が検証保留中から成功に変わるまで待ちます。
正常に手続き出来ていれば、1分程度で直ぐに成功に変わると思います。成功になったら続行をクリック。
スクリーンショット 2021-02-25 21.56.19.png
Certificate Managerの管理画面に遷移してきました。
赤枠のドメインあたりをクリックします。
スクリーンショット 2021-02-25 22.10.33.png
手動でRoute53にレコードを作成する事も出来るのですが、
ここから簡単にRoute53と連携させる事が出来ます。Route53でのレコードの作成をクリックします。
スクリーンショット 2021-02-25 22.12.50.png
Route53のCNAMEレコードに登録が確認出来たら、SSL証明書取得のプロセスは完了です。

2. ELB(ALB)を設定する

続いて、ELBの設定を行います。
今回の構成としてはインターネットからのトラフィックをELBでHTTPS(443)で受け、
EC2にHTTP(80)で通信します。

EC2のコンソールからロードバランサーを開き、Application Load Balancerを選択します。
スクリーンショット 2021-02-25 22.34.10.png
まず、基本的な設定でロードバランサーの名前を設定します。
今回の構成ではスキームはインターネット向けのままでOKです。リスナーはインターネットからALBまではHTTPS(443)になるので、HTTPS(セキュアHTTP)を選択します。
スクリーンショット 2021-02-26 20.09.43.png
ALBを設置するVPC、サブネットを選択します。
ここではVPCについての説明は省きますが、インターネットと通信するので、プライベートではなく、パブリックサブネットを選択するようにして下さい。
スクリーンショット 2021-02-26 20.15.18.png
続いて、セキュリティ設定です。
証明書タイプをACMから証明書を選択するを選びます。
証明書の名前で先ほど発行した証明書を選択しましょう。セキュリティポリシーはELBSecurityPolicy-2016-08のままでOKです。
スクリーンショット 2021-02-26 20.19.34.png
セキュリティグループの設定です。
既に設定済みのものをアタッチしても良いですが、なければここで設定しましょう。
HTTPSのインバウンドを許可するように出来ていればOKです。
スクリーンショット 2021-02-26 20.27.15.png
ターゲットグループを設定します。
こちらも事前に用意しているものをアタッチするのでも大丈夫です。
適用に名前をつけて、ターゲットの種類はインスタンス、プロトコルはHTTP、ポートは80でいきます。ヘルスチェックはHTTPで。
スクリーンショット 2021-02-26 20.30.41.png
ターゲットとして登録するインスタンスにチェックを入れて、登録済みに追加します。
スクリーンショット 2021-02-26 20.35.17.png
確認画面に遷移するので、作成を押せば完了です。elbタブに遷移しましょう。
スクリーンショット 2021-02-26 20.39.09.png
作成したALBのDNS名(Aレコード)をコピーします。
スクリーンショット 2021-02-26 20.40.57.png
少し分かり辛くて申し訳無いです。
最後にRoute53のホストしているドメインのAレコードにコピーした値を入れます(赤枠のあたり)。お疲れ様でした。
スクリーンショット 2021-02-26 20.45.27.png

3. EC2のセキュリティグループ設定を確認する

もうほぼ対応としては完了ですが、念のため、EC2にアタッチしているセキュリティグループで、HTTP(80)のインバウンドトラフィックが許可されているかを確認しておきましょ。
スクリーンショット 2021-02-26 20.51.04.png

4. 接続確認

ALBがターゲットグループ(今回で言うとEC2インスタンスに対して)に
ヘルスチェックを行った結果を確認する事が出来ます。EC2メニューのターゲットグループから設定したものを選択します。healthyとなっていれば正常です。
スクリーンショット 2021-02-26 20.57.16.png
ブラウザ(画像はchromeです)でアクセスして見ると、
スクリーンショット 2021-02-26 21.03.55.png
SSLの鍵マークがついていますね〜、無事にSSL化する事が出来ました。お疲れ様でした。

参考にさせて頂いた記事

AWSでWebサイトをHTTPS化 その1:ELB(+ACM発行証明書)→EC2編
ALB-EC2構成のhttps接続を構築
AWS Certificate Managerを使って無料でSSL証明書を発行する

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1