LoginSignup
2
1

More than 1 year has passed since last update.

EC2でドメインつけてSSL設定して公開する

Posted at

この記事は?

個人的なシステムを作るにあたってEC2上にWebサーバを作ったものの、SSL対応していないと保護されていないサイト扱いされて制約が大きいので、SSL化することにした。

それにあたって、様々な記事を調べたが、AWSの画面が古いものが多く、最新の画面と照合するのに苦労をしたので備忘を兼ねて記事にすることにした。

前提

EC2は既に作成済みで、Webアプリも公開されている状態からスタートします。
ドメインはお名前.comで取得済みです。

Index

  1. ドメインを取得してEC2と紐付ける
  2. SSL証明書を作成する
  3. ロードバランサーの作成
  4. Aレコードの変更
  5. EC2のセキュリティグループを変更
  6. ブラウザで確認する

手順

ドメインを取得してEC2と紐付ける

AWSの管理画面で「Route53」を検索して、開きます。
スクリーンショット 2021-12-28 15.59.36.png

Route53のダッシュボードが開くので、「ホストゾーン」を選択します。
スクリーンショット 2021-12-28 16.02.19.png

ホストゾーンのリストが表示されるので、「ホストゾーンの作成」を選択します。
スクリーンショット 2021-12-28 16.04.06.png

作成画面が表示されるので、必要事項を入力して画面一番下の「ホストゾーンの作成」をクリックして作成完了です。
スクリーンショット 2021-12-28 16.05.40.png

項目名 入力内容
ドメイン名 取得しておいたドメイン名
説明 必要に応じて説明文を入力
タイプ 「パブリックホストゾーン」を選択

作成が完了すると、リストに戻るのでリストから作成したホストゾーンを選択します。
スクリーンショット 2021-12-28 16.13.39.png
ホストゾーンの情報が表示されます。ネームサーバ情報(タイプがNSのレコード)を後の手順で使用するので覚えておいてください。
スクリーンショット 2021-12-28 16.17.38.png
お名前.comの管理画面でドメイン設定>ネームサーバの変更と進む。
スクリーンショット 2021-12-28 16.22.35.png
該当のドメインにチェックを入れ、ネームサーバの選択で「その他のサービス」のタブに切り替え、ネームサーバの欄に先ほど作成したホストゾーンのネームサーバ情報を設定します(そのままコピーすると末尾の「.」が入りますが、必要ないので削除してください)
スクリーンショット 2021-12-28 16.24.13.png
入力したら確認、設定すると進み設定を完了させます。
設定後、反映までに時間がかかることがあるとありますが、今回の場合は数分で完了メールが届きました。

ネームサーバの変更が反映されるまでに、EC2のElasticIPとVPCを調べておきましょう。
該当のEC2インスタンスの情報欄から取得できます。
スクリーンショット 2021-12-28 18.31.47.png

ネームサーバの変更が反映されたら、ドメインのEC2のIPアドレスを紐付けます。
Route53→作成したホストゾーンと進み、「レコードを作成」を選択します。
スクリーンショット 2021-12-28 16.32.11.png
レコードの作成画面が開くので、各項目を入力して「レコードを作成」をクリックしてレコードの作成を完了します。
スクリーンショット 2021-12-28 16.35.01.png

項目名 入力内容
レコード名 空欄でOK
レコードタイプ A
EC2のElasticIP
TTL デフォルトでOK
ルーティングポリシー デフォルトでOK

完了すると、Aレコードがレコード一覧に表示されます。
スクリーンショット 2021-12-28 16.40.16.png
これでEC2とドメインの紐付けが完了したので、ブラウザからドメイン名でアクセスをして、Webサイトが表示されることを確認してください。

SSL証明書を作成する

AWSの管理画面で「ACM」を検索し、検索結果から「Certificate Manager」を選択する。
スクリーンショット 2021-12-28 16.50.27.png
リクエストを選択して証明書を作成していきます。
スクリーンショット 2021-12-28 16.51.56.png
「パブリック証明書をリクエスト」を選択して、「次へ」
スクリーンショット 2021-12-28 16.53.26.png
各項目を入力して次に進みます。
スクリーンショット 2021-12-28 16.54.19.png

項目名 入力内容
完全修飾名 取得したドメインを設定
検証方法 DNS検証

最後に確認画面が表示されるので、内容を確認して証明書の作成を完了してください。

完了したら、リストから作成した証明書を選択し、「Route53レコードを作成」を選択します。
スクリーンショット 2021-12-28 16.58.08.png
レコード作成画面でSSL証明書を紐付けるドメインを選択して、「レコードを作成」をクリックして作成を完了します。
スクリーンショット 2021-12-28 17.01.35.png
作成が終わると検証が開始されます。下記のようにステータスが「成功」になれば検証完了です。
スクリーンショット 2021-12-28 17.06.09.png

ロードバランサーの作成

まずはターゲットグループを作成するので、EC2の管理画面のメニューから「ターゲットグループ」を選択する。
スクリーンショット 2021-12-28 17.10.29.png
「Create target group」を選択する。
スクリーンショット 2021-12-28 17.12.24.png
各項目を入力して次へ。
スクリーンショット 2021-12-28 17.14.11.png
スクリーンショット 2021-12-28 17.14.43.png
スクリーンショット 2021-12-28 17.15.31.png

項目名 入力内容
Choose a target type Instances
Target group name 任意の名称を入力
Protocol HTTP
Port 80
VPC 該当のEC2のVPCを選択
Protocol version HTTP1
Health check protocol HTTP
Health check path /

ターゲットに含めるEC2インスタンスを選択し、「Include as pending below」をクリックすると「Review targets」に追加されるので、「Create target group」をクリックして作成を完了します。
スクリーンショット 2021-12-28 17.21.26.png
スクリーンショット 2021-12-28 17.22.51.png
次のセキュリティグループを作成します。
EC2のメニューからセキュリティグループを選択します。
スクリーンショット 2021-12-28 17.32.52.png
「セキュリティグループを作成」を選択する。
スクリーンショット 2021-12-28 17.33.40.png
各項目を入力してセキュリティグループを作成します。
スクリーンショット 2021-12-28 17.35.15.png

項目名 入力内容
セキュリティグループ名 任意の名称
説明 任意の説明文
VPC 該当のEC2のVPCを選択

インバウンドルールとアウトバウンドルールは下記を追加します(ここでは最低限のものを記載しているので、必要に応じて追加してください)。

タイプ ソース
HTTP カスタム 0.0.0.0/0,::/0
HTTPS カスタム 0.0.0.0/0,::/0

次にロードバランサーを作成します。
EC2のメニューからロードバランサーを選択します。
スクリーンショット 2021-12-28 17.27.01.png
「ロードバランサーの作成」を選択します。
スクリーンショット 2021-12-28 17.27.43.png
タイプを選択する画面になるので「Application Load Balancer」を選択します。
スクリーンショット 2021-12-28 17.29.04.png
各項目を入力してロードバランサーの作成を完了します。
スクリーンショット 2021-12-28 17.30.19.png
スクリーンショット 2021-12-28 17.30.32.png
スクリーンショット 2021-12-28 17.30.41.png
スクリーンショット 2021-12-28 17.30.51.png

項目名 入力内容
Load balancer name 任意の名称
Scheme Internet-facing
Internet-facing IPv4
VPC 該当のEC2のVPCを選択
Mappings 3つとも選択
Security groups 作成したSecurity groups
Listeners and routing 次の項で説明します

「Listeners and routing」はHTTPとHTTPSの両方を追加します(HTTPSだけでもいいのですが、HTTPにアクセスした場合にHTTPSにリダイレクトする仕掛けをするのが一般的だと思うので、両方を追加しています)。

Protocol Port Default action
HTTP 80 作成したターゲットグループ
HTTPS 443 作成したターゲットグループ

HTTPSのリスナーを追加すると、「Secure listener settings」が表示されるので各項目を入力する。
スクリーンショット 2021-12-28 17.57.39.png

項目名 入力内容
Security policy デフォルトのままでOK
Default SSL certificate From ACM / 作成したSSL証明書

あとは「Create Load Balance」をクリックし、確認できたら作成完了です。

Aレコードの変更

Route53で作成したホストゾーンのAレコードをロードバランサー経由になるように変更をします。
Aレコードを選択して、「レコードを編集」を選択します。
スクリーンショット 2021-12-28 18.03.30.png
各項目を入力して保存します。
スクリーンショット 2021-12-28 18.07.23.png

項目名 入力内容
レコード名 空欄でOK
レコードタイプ A
ルーティング先 Application Load Balancer〜 / ロードバランサーがあるリージョン / 作成したロードバランサー
ルーティングポリシー シンプルルーティング

EC2のセキュリティグループを変更

EC2のインスタンス一覧で該当のインスタンスのセキュリティグループを変更します。
スクリーンショット 2021-12-28 18.15.00.png
「セキュリティグループを編集」で作成したセキュリティグループを選択し、追加をします。
スクリーンショット 2021-12-28 18.17.15.png

ブラウザで確認する

これでSSLの設定が完了したので、ブラウザからhttps://(作成したドメイン)でアクセスをして、設定が反映されていることを確認してください。
スクリーンショット 2021-12-28 18.21.45.png

2
1
1

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