0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AWSでセキュアなWebサーバー構築!EC2× Route53でSSL/TLS対応サイトを作る

Last updated at Posted at 2024-12-05

前回作成したEC2インスタンスにSSL/TLS証明書を導入し、HTTPSに対応したセキュアなWebサイトを構築していきます。
このチュートリアルでは、Route53を使用して、EC2インスタンスをHTTPS化する手順を詳しく解説していきます。

準備するもの

必要な環境

  • AWSアカウント
  • EC2インスタンス(Nginxまたは Apache インストール済み)
  • 独自ドメイン

事前準備の参考記事

  • EC2インスタンスの作成手順:こちら
  • Webサーバーのインストール手順:こちら

ドメイン設定とSSL化の手順

ステップ1: インスタンスの動作確認

まず初めに、作成したインスタンスが正常に動作しているか確認をします。
インスタンスのパブリックIPアドレスを使ってインスタンスにアクセスしてみましょう。
Nginxを使用している方は、下記のように表示がされるはずです。

重要: HTTPSの設定前に、必ずセキュリティグループで443ポートを開放してください。この設定を忘れると、後のSSL設定が正しくても接続できません。

スクリーンショット 2024-12-04 213214.png

ステップ2: Route53でのドメイン設定

1. ホストゾーンの設定

Route53でホストゾーンを作成していきます。

1. AWSコンソールにアクセス

1. 検索バーに「Route53」と入力
2. 検索結果から「Route53」を選択

スクリーンショット 2024-12-04 213932.png

2. ホストゾーン作成画面へ移動

1. 左側メニューから「ホストゾーン」を選択
2. 右上の「ホストゾーンの作成」をクリック

スクリーンショット 2024-12-04 214227.png

スクリーンショット 2024-12-04 214350.png

3. ホストゾーンの設定

1. 「ドメイン名」欄に取得した独自ドメインを入力
2.  他の設定はデフォルトのまま
3. 「ホストゾーンの作成」ボタンをクリック

スクリーンショット 2024-12-04 214714.png

4. レコードの作成

* ダッシュボードに戻り作成したホストゾーンを選択
* 「レコード作成」ボタンをクリック
* 「値」にEC2インスタンスのIPアドレスを入力
* 「レコード作成」ボタンをクリック

スクリーンショット 2024-12-04 220117.png

スクリーンショット 2024-12-04 220223.png

2. ネームサーバーの設定

ホストゾーンの設定ができたので、ネームサーバ情報を登録していきます。

1.Route53のホストゾーン画面でNSレコードを確認

1. 作成したドメインのホストゾーンを選択
2. 「ホストゾーンの詳細」で表示されるNSレコードの値をメモ
3. 通常4つのネームサーバーが表示されます

スクリーンショット 2024-12-04 220959.png

2.ドメインプロバイダーでネームサーバーを設定

1. ドメインプロバイダーの管理画面にログイン(例:Valueドメイン)
2. 独自ドメインのネームサーバー設定を開く
3. メモしたNSレコードを入力(4つ)
4. 保存ボタンを押す

スクリーンショット 2024-12-04 221727.png

  • ドメインプロバイダーによって設定画面は異なります
  • DNSの変更反映には最大72時間程度かかる場合があります

ステップ3: SSL化

Let's Encryptから無料SSL証明書を発行するためのツールcertbotを使用してSSL化を行います。

1. Nginxの設定ファイルの準備

1. インスタンスにログイン
2. 設定ファイルを開き設定を追加する

インスタンスへのログイン方法はこちら

2. ネームサーバーの設定

ホストゾーンの設定ができたので、ネームサーバ情報を登録していきます。

1.Route53のホストゾーン画面でNSレコードを確認

1. 作成したドメインのホストゾーンを選択
2. 「ホストゾーンの詳細」で表示されるNSレコードの値をメモ
3. 通常4つのネームサーバーが表示されます

スクリーンショット 2024-12-04 220959.png

2.ドメインプロバイダーでネームサーバーを設定

1. ドメインプロバイダーの管理画面にログイン(例:Valueドメイン)
2. 独自ドメインのネームサーバー設定を開く
3. メモしたNSレコードを入力(4つ)
4. 保存ボタンを押す

スクリーンショット 2024-12-04 221727.png

  • ドメインプロバイダーによって設定画面は異なります
  • DNSの変更反映には最大72時間程度かかる場合があります

ステップ3: SSL化

Let's Encryptから無料SSL証明書を発行するためのツールcertbotを使用してSSL化を行います。

1. Nginxの設定ファイルの準備

1. インスタンスにログイン
2. 設定ファイルを開き設定を追加する

インスタンスへのログイン方法はこちらをご覧ください。
ログインできたら、Nginx設定ファイルを下記コマンドで開きます。

sudo nano /etc/nginx/conf.d/default.conf

設定ファイルが開けたら下記を書き込み、nginxを再実行します。

server {
    listen 80;
    server_name 独自ドメイン;
}

(再実行コマンド)

sudo systemctl restart nginx

2. SSL証明書を発行

1. Let's Encryptから無料SSL証明書を発行するためのツールcertbotをインストール
2. Certbotの確認
3. 証明書の発行

(cerbotをインストールするコマンド)

sudo dnf install -y certbot python3-certbot-nginx

(Cerbotの確認)

certbot --version

(バージョンが表示される)

certbot 2.6.0

(証明書の発行)

sudo certbot --nginx -d 独自ドメイン

証明書の発行コマンドを入力すると、メールアドレスの入力が求められるので、入力して下さい。その後質問があるので、すべて「y」と入力します。
最後に、「Congratulations! You have successfully enabled HTTPS on~」とでてきたら無事SSL化できています。

スクリーンショット 2024-12-04 224734.png

ステップ4: 動作確認

サイトにアクセスして、以下の点を確認します:

1. ブラウザのアドレスバーに https:// が表示されている
2. アドレスバーの左側に鍵のマークが表示されている
3. サイトが正常に表示される

以上の3点が確認できれば、SSL化は正常に完了しています。。

スクリーンショット 2024-12-05 231105.png

おわりに

AWS上のインスタンスのSSL化は、セキュアなウェブサイトを運用する上で必須のスキルです。今回の手順が、みなさんのウェブ開発のお役に立てば幸いです。最後までご覧いただきありがとうございました!

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?