ACM,ALB,Route53を活用してSSL化する.httpsのリダイレクトも.| AWS

標題の通りです。ご自身で取得したドメインをSSL化したい場合の一連の流れと作業を解説していきます。ちなみに、自分はお名前ドットコムでドメイン取得をしております。

■前提

・httpによるアクセスが出来ている環境であること.
・AWSを利用して、サーバー構築していること.

0:ACM,ALB,Route53各サービスの役割

初めに、各サービスの相互役割を解説して、全体の流れを解説していきたいと思います。

Route53の役割:

・ドメインのDNSレコードの作成
・ルーティング先をALBへ指定(ドメインアクセス後にALBへ)

ACMの役割:

・SSL化に必要な証明証の発行

ALBの役割:

・httpsアクセスに対して、ACMで発行した証明証を基にSSL化
・Target(今回はEC2インスタンス)へ、転送
・httpアクセスに対して、httpsへリダイレクト

①:ドメインの取得

ご自身でドメイン取得をして下さい。自分はお名前ドットコムでドメイン取得しております。

②:ACMで証明証発行

AWS Certificate Manager > 証明書 @ リクエスト

・「パブリック証明証をリクエスト」を選択
・完全修飾ドメイン名 (FQDN): {{ご自身で取得したドメインを指定}}

これで、証明証を発行します。

③:Route53レコードの設定

③-1:ホストゾーンの作成

Route 53 > ホストゾーン @ ホストゾーンの作成

・ドメイン名: {{ご自身で取得したドメインを指定}}
・パブリックホストゾーンを選択

これで、ホストゾーンを作成します。

③-2:NSレコードを、ドメイン購入サイトに反映

下記サイトなどで手順を参考に。

https://dev.classmethod.jp/articles/route53-domain-onamae/
https://blog.i-tale.jp/2020/04/13_02/

③-3:CNAMEレコードを、ACMからから作成

③-3-1:CNAMEレコードとは.

CNAMEは、ドメイン名と別ドメイン名をつけることができる。
つまり違うドメイン名で、同じ動きをしてくれます。

③-3-2:ACMから、Route53のCNAMEを作成

AWS Certificate Manager > 証明書 > ②で作成した証明証へ

Route53でレコード作成

③で作成している、Route53を選択して下さい。

④:ALBでSSL化 / ターゲットグループへの転送(EC2) / httpからのリダイレクト

④-1:ロードバランサーの作成

EC2 > ロードバランサー @ ロードバランサーの作成

Create Application Load Balancer

Basic configuration

名前を自由を設定にして、basic 情報を設定。

VPCを選択します。

今回のターゲットグループとなる、EC2インスタンスが設置してあるVPCを選択します。
※少なくとも2つ以上のアベイラビリティゾーンを追加して下さいとのことです。

リスナーを設定

・HTTPSプロトコル、443ポートで受けます。
・Forward to にターゲットグループを設定します。今回の場合は、EC2インスタンスを含まれるターゲットグループを指定
・secure listenerを From ACMで「②で作成したACMを指定」

セキュリティグループを設定

今回作成するセキュリティグループは、ALBへのセキュリティグループです。HTTPS・HTTPどちらもインバウンドを許可します。
※HTTPに対するリダイレクト処理は下記で紹介。

④-2:httpからのアクセスをhttpsへリダイレクト

設定方法を下記記事にて解説しています。

⑤:Route53で、Aレコードの設定

④で作成したALBを、Route53でAレコードをしていきます。

⑤-1:Aレコードとは.

ドメインをIPアドレスへ変換します。
ドメインへのリクエストが合った際のルート先を指定することができます。
今回はリクエストが合った際に、ALBを指定することで、SSL化を実行しています。

⑤-2:設定

・レコードタイプ:A
・エイリアス:オン
・ルーティング先:ALB >> ap-northeast-1(ご自身のリージョン)>>{{④で作成した、ALBを指定}}

[AWS|ALB]http→httpsへリダイレクトの設定

SSL化した後に、httpでのアクセスが可能 OR httpではアクセスが不可の状態が発生することで、httpへのアクセスを全てhttpsへリダイレクトしたい機会があると思います。 AWSのALBを利用して、設定していきます。

■前提

AWSのALBにて、ロードバランサー経由でWebサーバーへ接続をしている場合に限る。

ロードバランサーの設定

EC2 >> ロードバランサー >> リスナー

「リスナーの追加」をします。

すると下記の、追加設定画面が出てきますので。
・httpを80ポートで受けて
・リダイレクトをfull URLで設定

これで、htttp → https化へリダイレクトします。