Route53の設定方法
この記事では、AWSのRoute 53を使って「独自ドメインの取得」「DNS の設定」「SSL 化(HTTPS 対応)」を行う手順を解説します。
使用サービス
- AWS Route 53
- ドメイン登録
- DNS 管理
- AWS Certificate Manager(SSL 証明書の発行)
- EC2 (Amazon Linux 2023対応)
リージョン
1. ドメインの取得
- AWS マネジメントコンソール → 「Route 53」→「登録済みドメイン」→「ドメインを登録」
- ドメイン検索で希望のドメインを入力し、利用可能なものを選択して「チェックアウト」
- 今回は開発用のため、安価なドメインを選択
- 今回は開発用のため、安価なドメインを選択
- 「自動更新」のチェックを外す
- 連絡先情報を入力
- 数分でドメインが登録完了
2. ホストゾーンと DNS 設定
-
「Route 53」→「ホストゾーン」→ 取得したドメイン名のゾーンを選択
-
「レコードを作成」→ 画面右の「ウィザードに切り替える」
-
「シンプルルーティング」を選択し、「シンプルなレコードを定義」
-
以下のように設定:
項目 内容 レコード名 (空白)=ルートドメイン レコードタイプ A(IPv4) 値 EC2 のパブリック IP アドレス -
同じように「www」レコードも作成(IP アドレスは同じ)
3. DNS の動作確認
DNSの設定が出来ているか確認します
nslookup ドメイン名
IP アドレスが返れば OK!
4. ブラウザでアクセス確認
ドメインでブラウザにアクセスします
問題なく表示されています!
※ ただし、この時点では「http」通信のため暗号化されていません。
続いて、HTTPS(SSL)の設定を行いましょう。
5. SSL 化(HTTPS 対応)
AWS Certificate Manager(ACM)を使って無料の SSL 証明書を発行します。
手順:証明書のリクエスト
-
AWS マネジメントコンソール → Certificate Manager
-
「証明書をリクエスト」をクリック
-
次のように設定します:
- 証明書タイプ:パブリック証明書
- 検証方法:DNS 検証(推奨)
- キーアルゴリズム:RSA 2048
-
作成された証明書の一覧から、対象の証明書を選択し
「Route 53 でレコードを作成」 をクリック
-
自動で検証用レコードが表示されるので、「レコードを作成」をクリックして DNS に反映します
ステータス確認
- 数分~数十分後、証明書のステータスが「発行済み」になれば OK
これで SSL の準備は完了です。
次は Laravelや Nginx 側で https 設定を行います
6. Laravel
.envファイルの「APP_URL」を「https」へ変更します
APP_URL=https://ドメイン名
7. EC2
7-1. Nginx のドメイン設定
まずは EC2 に SSH 接続し、/etc/nginx/conf.d/your-app.conf
ファイル内の server_name
を独自ドメインに変更します。
※ 権限エラーが出る場合は root に切り替えてから操作してください。
sudo su root
server {
listen 80;
server_name 〇〇; 👈️ドメイン名に修正
#例) server_name aws-original-test-developer.com
}
7-2. Certbot のインストール
Let's Encrypt の証明書を取得するため、Certbot と Nginx 向けプラグインをインストールします。
sudo dnf install -y certbot
sudo dnf install -y python3-certbot-nginx
certbot --version
#certbot 2.6.0
7-3. cronie のインストールと cron 起動
Amazon Linux 2023 には cron が標準搭載されていないため、cronie をインストールします。
これにより証明書の自動更新を定期実行できます。
sudo dnf install -y cronie
sudo systemctl enable --now crond
systemctl status crond
7-4. Nginx の一時停止
Certbot はポート 80 を使って認証を行うため、Nginx が稼働していると競合します。
そのため、証明書取得前に Nginx を一時停止します。
sudo systemctl stop nginx
7-5. 証明書の取得(standalone モード)
Certbot の --standalone
モードを使用し、Nginx を介さずに証明書を取得します。
sudo certbot certonly --standalone -d aws-original-test-developer.com -d www.aws-original-test-developer.com
7-6. 証明書取得後の状況確認
項目 | 状況 |
---|---|
メール登録と利用規約の同意 | ✅ 完了 |
証明書の取得 | ✅ 成功 |
証明書保存先 | /etc/letsencrypt/live/aws-original-test-developer.com/ |
自動更新スケジュールの設定 | ✅ cron にて設定済み |
7-7. 保存された証明書ファイルの内容
ファイル名 | 内容 | Nginx での用途 |
---|---|---|
cert.pem |
サーバー証明書(このドメイン用) |
ssl_certificate に指定 |
privkey.pem |
秘密鍵 |
ssl_certificate_key に指定 |
chain.pem |
中間証明書(認証局の証明連鎖) | 通常は使用しない |
fullchain.pem |
cert.pem + chain.pem の結合 |
✅ 一般的に使用 |
README |
説明ファイル | 使用しない |
nginx再起動
sudo systemctl restart nginx
7-8. 自動更新のスケジュールを登録
crontab
に以下のスケジュールを登録することで、証明書の自動更新と Nginx の再読み込みを行うようにします。
sudo crontab -e
次の1行を追加
0 4 * * * /usr/bin/certbot renew --quiet && /bin/systemctl reload nginx
7-9. Nginx の SSL 対応設定(laravel.conf)
/etc/nginx/conf.d/your-app.conf
に以下のような HTTPS 対応ブロックを追加してください。
📌 ドメインやパスはご自身の環境に合わせて修正ください
# HTTP → HTTPS リダイレクト
server {
listen 80;
server_name aws-original-test-developer.com www.aws-original-test-developer.com;
return 301 https://$host$request_uri;
}
# HTTPS 設定
server {
listen 443 ssl;
server_name aws-original-test-developer.com www.aws-original-test-developer.com;
root /var/www/Laravel12_test/public;
index index.php index.html;
ssl_certificate /etc/letsencrypt/live/aws-original-test-developer.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/aws-original-test-developer.com/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_pass unix:/var/run/php-fpm/www.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.(?!well-known).* {
deny all;
}
}
以上で設定は完了です
SSL 化の確認
ブラウザで https://aws-original-test-developer.com
にアクセスし、
🔒 鍵マークが表示されていれば SSL 設定は完了です。
✅ まとめ
- Route 53 で独自ドメインを登録し、DNS 設定を完了
- Laravel アプリにドメインを組み込み、ブラウザで接続確認済み
- Certbot を使って証明書を登録し、Nginx 端での HTTPS 実現に成功
この手順が、SSL 化を実現したい方の参考になれば幸いです!
🔗 参考記事
Laravel を AWS へデプロイ | VPC・EC2 構築から公開まで
Discussion