- 公開日
- 最終更新日
Route 53 + ACM + ALB で通信をHTTPS化(暗号化)する
この記事を共有する
目次
はじめに
パーソル&サーバーワークスの めんらい です。
今回は、AWS でHTTPS 通信(暗号化通信)を実装する際の設定方法を書いていこうと思います。
※ALB構築記事の続きからを意識して書いています。
本記事の目的
- Amazon Route 53(以下、Route 53) で独自ドメインを取得する方法を知る
- AWS Certificate Manager(以下、ACM)でSSLサーバー証明書を取得する方法を知る
- Application Load Balancer(以下、ALB)にSSLサーバー証明書を適用する方法を知る
前提
- AWS マネジメントコンソールへのログインができること
- 東京リージョンを利用
- Amazon VPC(以下、VPC)構築済み(VPCはこちらの記事の構成)
- Amazon EC2(以下、EC2)構築済み(EC2はこちらの記事の構成)
- ALB 構築済み(ALBはこちらの記事の構成)
HTTPS 通信に必要な要素
一般公開しているWebサイトなどには、必ずと言っていいほど必要なHTTPS 通信の設定ですが、主に3つの要素が必要です。
本記事ではその3要素と、AWS で実装する際の設定方法を以下のように整理しています。
| 要素 | 役割 | 該当AWS サービス |
|---|---|---|
| ドメイン | 「www.hogehoge.com」など、インターネット上の住所情報を文字列にしたもの。接続先サーバーへ案内する | Route 53 |
| SSLサーバー証明書 | サイトの正当性を証明し、HTTPS通信を可能にさせる | ACM |
| SSL終端 | SSLサーバー証明書をもとに、実際にHTTPS 通信を受け付け、暗号の復号化を行う | ALB |
なお、HTTPS 通信はEC2 インスタンス上のWebサーバー(ApacheやNginx)へSSLサーバー証明書を直接配置することでも実装可能です。
しかし、運用・保守性およびAWS 推奨の観点から、「(Route 53)+ACM +ALB」の構成でのHTTPS 通信の実装としています。
Amazon Route 53 とは?
- AWS が提供する DNS(ドメイン管理)サービス
- 「www.hogehoge.com」といったドメインをWebサーバーなどのIPアドレスに変換する(名前解決機能)
- 他にもヘルスチェック機能や障害発生時のフェイルオーバー機能など、DNS関連の機能が多数
AWS Certificate Manager とは?
- AWS が提供する SSLサーバー証明書サービス
- SSLサーバー証明書を発行・自動更新による運用負荷の軽減が可能
※DV認証(ドメイン認証)レベルの証明書のみ - AWS 以外のサードパーティ製のSSLサーバー証明書も、インポートして管理することは可能(自動更新はできない)
ハンズオン
1. ドメインの登録
- AWSマネジメントコンソールにログインして、右上のリージョン選択箇所にて[東京]リージョンを選択する

- 左上の検索バーにて[Route 53]を検索し、Route 53 を開く

- 左のナビゲーションペインから[登録済みドメイン]をクリックする

- [ドメインを登録]をクリックする

- ドメインの検索欄に、作成したいドメイン名を入力し、[検索]をクリックする(以下例の場合、menrai-20260908.click)
※今回はハンズオンのため、最安値の「.click」ドメインを利用している

- 検索結果で「完全一致」であることを確認し、[選択]をクリックする

- 「選択されたドメイン」にある[チェックアウトに進む]をクリックする

- 「Secure your brand across other extensions」というポップアップが出てきた場合は、[Skip]をクリックする

- ハンズオンのため、今回は「自動更新」はオフにし、[次へ]をクリックする

- 連絡先情報を入力する(ハンズオンのため、「連絡先のタイプ」は「個人」にする)

- 「プライバシーの保護」を有効化し、[次へ]をクリックする

- 利用規約に同意のチェックを入れ、[送信]をクリックする

- ドメインの登録申請が進行する。[ステータスを確認]をクリックすると、ドメイン登録リクエストの状況が確認できる


- ドメインの登録申請に利用したことがない連絡先のメールアドレスで申請した場合、該当メールアドレスに検証用メールが送信される。
その場合はメール中のURLをクリックし、本人確認を実施する。
既にドメインの登録申請に利用したことのあるメールアドレスの場合は、5~10分ほどでリクエストが自動承認される

- リクエストのステータスが「成功」になっていることを確認する

2. レコードの作成
- 左のナビゲーションペインから[ホストゾーン]に移動し、作成したドメインをクリックする

- [レコードを作成]をクリックする

- 以下設定を入力し、[レコードを作成]をクリックする
- レコード名:www
- レコードタイプ:A-IPv4アドレスと一部のAWSリソースにトラフィックをルーティングします。
- エイリアス:有効
- トラフィックのルーティング先:Application Load Balancer と Classic Load Balancer へのエイリアス
- リージョン:アジアパシフィック(東京)
- ALB:<作成したALB>

- レコード名:www
- 正常にAレコードが作成されていることを確認する

- 自身のPCのコマンドプロンプトから以下のコマンドを実行し、結果下部にある"Address"にIPアドレスが表示される(名前解決ができている)ことを確認する
nslookup <作成したAレコードのサブドメイン>
(以下例の場合、www.menrai-20260908.click)

- 動作確認のために、EC2 の管理画面に移動し、先ほど登録したレコードで指定したALB にEC2 を起動する
(以下例の場合、予めALBに紐づけていたAuto Scaling から起動)
- ブラウザから「http://<作成したAレコードのサブドメイン>/」でアクセスし、ページが表示されることを確認する(以下例の場合、http://www.menrai-20260908.click/)

3. SSLサーバー証明書の発行
- 左上の検索バーにて[ACM]を検索し、ACM を開く

- 左のナビゲーションペインから[証明書をリクエスト]をクリックする

- 「パブリック証明書をリクエスト」を選択し、[次へ]をクリックする

- 以下設定を入力し、[リクエスト]をクリックする
- 完全修飾ドメイン:<作成したAレコードのサブドメイン>(以下例の場合、www.menrai-20260908.click)
- エクスポートを許可:エクスポートを無効にする
- 検証方法:DNS検証
- キーアルゴリズム:RSA 2048
- タグ(キー):Name
- タグ(値):<作成したAレコードのサブドメイン>


- 正常にリクエストされた後、[Route 53 でレコードを作成]をクリックする
※DNS 認証用のレコードをRoute 53 ホストゾーンに追加する必要があるため

- 作成したドメインを選択し、[レコードを作成]をクリックする

- DNS レコードが正常に作成されたことを確認する

- Route 53 の管理画面に移動し、該当のホストゾーンをクリックする

- CNAME レコードが追加されていることを確認する

- ACM の管理画面に戻り、「証明書一覧」にて該当の証明書のステータスが「発行済み」になっていることを確認する

4. ALB にSSLサーバー証明書を適用する
- EC2 の管理画面に移動し、左のナビゲーションペインから[ロードバランサー]をクリックする

- SSLサーバー証明書を適用する該当のALB をクリックする

- 「リスナーとルール」タブから[リスナーの追加]をクリックする

- 以下設定を入力し、[リスナーの追加]をクリックする
- プロトコル:HTTPS
- ポート:443
- ターゲットグループ:
(以下例の場合、menrai-20260908-alb-tg) - 証明書の取得先:ACM から
- 証明書(ACM から):<作成したSSLサーバー証明書>(以下例の場合、www.menrai-20260908.click)



- リスナーが正常に追加されたことを確認する。
HTTPS のルールにある「到達不可能」をクリックすると、セキュリティグループでHTTPS が許可されていないと表記されるので、セキュリティグループの設定変更を行う


- 左のナビゲーションペインから[セキュリティグループ]をクリックする

- 該当ALB で利用しているセキュリティグループを選択し、「インバウンドルール」から[インバウンドルールを編集]をクリックする

- HTTPS の通信許可設定を追加し、[ルールを保存]をクリックする

- インバウンドルールにHTTPS の設定が追加されていることを確認する

- ロードバランサーの「リスナーとルール」タブに戻り、「到達不可能」という表記が消えていることを確認する

- ブラウザから「https://<作成したAレコードのサブドメイン>/」でアクセスし、暗号化通信でページが表示されることを確認する(以下例の場合、https://www.menrai-20260908.click/)

まとめ
今回は、Route 53・ACM・ALB を利用してHTTPS通信を実現する方法を確認しました。
今回のハンズオンを通して、ドメインの設定、SSLサーバー証明書の発行、ロードバランサーへの証明書適用という一連の流れを知ることができたかと思います。
HTTPS通信は現在のWebサービスにおいて欠かせない要素のひとつです。
今後は各サービスの役割を理解したうえで、安全なシステム構築に活用していきましょう。
この記事は私が書きました
めんらい
記事一覧め の人です
AWSを日々勉強中です
フロリダ旅行を目指して頑張っています