前回作成したEC2インスタンスにSSL/TLS証明書を導入し、HTTPSに対応したセキュアなWebサイトを構築していきます。
このチュートリアルでは、Route53を使用して、EC2インスタンスをHTTPS化する手順を詳しく解説していきます。
準備するもの
必要な環境
- AWSアカウント
- EC2インスタンス(Nginxまたは Apache インストール済み)
- 独自ドメイン
事前準備の参考記事
ドメイン設定とSSL化の手順
ステップ1: インスタンスの動作確認
まず初めに、作成したインスタンスが正常に動作しているか確認をします。
インスタンスのパブリックIPアドレスを使ってインスタンスにアクセスしてみましょう。
Nginxを使用している方は、下記のように表示がされるはずです。
重要: HTTPSの設定前に、必ずセキュリティグループで443ポートを開放してください。この設定を忘れると、後のSSL設定が正しくても接続できません。
ステップ2: Route53でのドメイン設定
1. ホストゾーンの設定
Route53でホストゾーンを作成していきます。
1. AWSコンソールにアクセス
1. 検索バーに「Route53」と入力
2. 検索結果から「Route53」を選択
2. ホストゾーン作成画面へ移動
1. 左側メニューから「ホストゾーン」を選択
2. 右上の「ホストゾーンの作成」をクリック
3. ホストゾーンの設定
1. 「ドメイン名」欄に取得した独自ドメインを入力
2. 他の設定はデフォルトのまま
3. 「ホストゾーンの作成」ボタンをクリック
4. レコードの作成
* ダッシュボードに戻り作成したホストゾーンを選択
* 「レコード作成」ボタンをクリック
* 「値」にEC2インスタンスのIPアドレスを入力
* 「レコード作成」ボタンをクリック
2. ネームサーバーの設定
ホストゾーンの設定ができたので、ネームサーバ情報を登録していきます。
1.Route53のホストゾーン画面でNSレコードを確認
1. 作成したドメインのホストゾーンを選択
2. 「ホストゾーンの詳細」で表示されるNSレコードの値をメモ
3. 通常4つのネームサーバーが表示されます
2.ドメインプロバイダーでネームサーバーを設定
1. ドメインプロバイダーの管理画面にログイン(例:Valueドメイン)
2. 独自ドメインのネームサーバー設定を開く
3. メモしたNSレコードを入力(4つ)
4. 保存ボタンを押す
- ドメインプロバイダーによって設定画面は異なります
- DNSの変更反映には最大72時間程度かかる場合があります
ステップ3: SSL化
Let's Encryptから無料SSL証明書を発行するためのツールcertbotを使用してSSL化を行います。
1. Nginxの設定ファイルの準備
1. インスタンスにログイン
2. 設定ファイルを開き設定を追加する
インスタンスへのログイン方法はこちら
2. ネームサーバーの設定
ホストゾーンの設定ができたので、ネームサーバ情報を登録していきます。
1.Route53のホストゾーン画面でNSレコードを確認
1. 作成したドメインのホストゾーンを選択
2. 「ホストゾーンの詳細」で表示されるNSレコードの値をメモ
3. 通常4つのネームサーバーが表示されます
2.ドメインプロバイダーでネームサーバーを設定
1. ドメインプロバイダーの管理画面にログイン(例:Valueドメイン)
2. 独自ドメインのネームサーバー設定を開く
3. メモしたNSレコードを入力(4つ)
4. 保存ボタンを押す
- ドメインプロバイダーによって設定画面は異なります
- 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化できています。
ステップ4: 動作確認
サイトにアクセスして、以下の点を確認します:
1. ブラウザのアドレスバーに https:// が表示されている
2. アドレスバーの左側に鍵のマークが表示されている
3. サイトが正常に表示される
以上の3点が確認できれば、SSL化は正常に完了しています。。
おわりに
AWS上のインスタンスのSSL化は、セキュアなウェブサイトを運用する上で必須のスキルです。今回の手順が、みなさんのウェブ開発のお役に立てば幸いです。最後までご覧いただきありがとうございました!