目次
はじめに
今回は、バーチャルホスト環境で、複数ドメインの証明書 AWS Certificate Manager (ACM) を、1 つの Application Load Balancer (ALB) に設定する手順をまとめていきます。
今回の構成は以下のとおりです。
- Route 53
- AWS Certificate Manager (ACM)
- Application Load Balancer (ALB)
- Amazon Linux 2023 (EC2)
- nginx 1.24
- バーチャルホスト環境(ドメイン 2 つ)
- example1.jp
- examole2.jp
- バーチャルホスト環境(ドメイン 2 つ)
事前準備
- nginx のバーチャルホスト設定をしている
- ドメインを Route 53 のホストゾーンに登録している
- AWS Certificate Manager (ACM) で証明書を作成している
- ロードバランサー Application Load Balancer (ALB) を作成している
設定例
バーチャルホストの設定
バーチャルホストの設定では、ドメイン毎の設定ファイルに、ドメインとドキュメントルートが設定されています。
server {
listen 80;
server_name example1.jp;
root /var/www/html/example1.jp;
index index.php index.html;
}
server {
listen 80;
server_name example2.jp;
root /var/www/html/example2.jp;
index index.php index.html;
}
Route 53 ホストゾーン設定
Route 53 のホストゾーンの設定では、それぞれのドメインが登録されていて、Aレコードに ALB、CNAME レコードに証明書 (ACM) の値が設定されています。
- ホストゾーン名: example1.jp
- レコード名: example1.jp
- タイプ: NS
- 値: ns-******, ns-******, ns-******, ns-******
- レコード名: example1.jp
- タイプ: SOA
- 値: ns-******
- レコード名: example1.jp
- タイプ: A
- 値: ********.ap-northeast-1.elb.amazonaws.com. (ALB)
- レコード名: _******
- タイプ: CNAME
- 値: _******
- レコード名: example1.jp
- ホストゾーン名: example2.jp
- レコード名: example2.jp
- タイプ: NS
- 値: ns-******, ns-******, ns-******, ns-******
- レコード名: example2.jp
- タイプ: SOA
- 値: ns-******
- レコード名: example2.jp
- タイプ: A
- 値: ********.ap-northeast-1.elb.amazonaws.com. (ALB)
- レコード名: _******
- タイプ: CNAME
- 値: _******
- レコード名: example2.jp
ACM の設定
AWS Certificate Manager (ACM ) の設定では、ドメイン毎の証明書が発行されていて、ステータスが発行済みになっています。
- 証明書 ID: ******
- ドメイン: example1.jp
- ステータス: 発行済み
- 証明書 ID: ******
- ドメイン: example2.jp
- ステータス: 発行済み
ロードバランサーの設定
ロードバランサーの設定では、ロードバランサーが作成されていて、リスナー 80 が作成されている。また、443 が作成されている場合、デフォルトの証明書に example1.jp が設定されている。
- リスナー: HTTP:80
- デフォルトの証明書: 該当なし
- リスナー: HTTPS:443
- デフォルトの証明書: example1.jp
証明書を追加する
デフォルト証明書が登録されている場合
ロードバランサー (ALB) のリスナー HTTPS:443 にデフォルト証明書が登録されている場合は、以下の手順で証明書を追加します。
- EC2 コンソールのナビゲーションペイン [ロードバランサー] を選択し、ロードバランサーの一覧を表示します。
- 「ロードバランサー」ページの一覧から、証明書を追加するロードバランサーを選択します。
- ロードバランサーの詳細ページ「リスナーとルール」セクションで、[HTTPS:443] を選択します。
- 「HTTPS:443」ページで [証明書] タブを選択します。
- デフォルトの証明書が登録されていることを確認します。
- 「SNI のリスナー証明書」セクションの [証明書を追加] を選択します。
- 「リスナーに証明書を追加」ページで、追加する証明書 [example2.jp] をチェックします。
- [保留中の証明書の追加] を選択して、証明書を追加します。