📝

httpで公開したWebサーバーをhttps通信できるようにする

2023/03/06に公開

前回の記事で、AWS の EC2 で Web サーバーを立てて、http 通信で公開する方法を紹介しました。
今回は前回の構成を使用して、https 通信で公開する方法を紹介します。
インフラの構成は以下のようになります。

ACM を使用して TLS 証明書を発行する

ACM とは、AWS が提供する TLS 証明書の管理サービスです。
TLS 証明書とは、サーバーとクライアントが通信を行う際に、通信の暗号化を行うための証明書です。
SSL 証明書ともいいます。
TLS 証明書の仕組みについてはこちらの記事を読んでみるとイメージしやすくて良いと思います。


作成する時の注意点なのですが、ドメイン名を入力する際にワイルドカードドメインを使用すると、サブドメインも含めて証明書が発行されます。
例えば*.example.comと入力すると、example.comwww.example.comの両方に対して証明書が発行されます。

ターゲットグループの作成

ターゲットグループとは、ロードバランサーがリクエストを転送する先の EC2 インスタンスを指定するためのグループです。
この後のロードバランサーを作成する際に必要なので今作っておきます

ロードバラーンサーを入れるためのパブリックサブネットを作成します

アプリケーションロードバランサーの作成

次にアプリケーションロードバランサーを作成します。

ec2 インスタンスの入っているパブリックサブネットをプライベートサブネットに変更する

ec2 のインスタンスへのアクセスはロードバランサーを介して行うようにします。
そのため、ec2 インスタンスが入っているパブリックサブネットをプライベートサブネットに変更します。
パブリックサブネットをプライベートサブネットに変更する方法は

  1. サブネットの名前を変更する
    サブネットのページからnozomi-dev-public-subnet1anozomi-dev-private-subnet1aに変更します。

  2. パブリックサブネットのルートテーブルを変更する
    ルートテーブルは必要なくなるので、nozomi-dev-private-subnet1aのルートテーブルを削除します。

ロードバランサーを入れるためのパブリックサブネットを作成する

ロードバランサーを作成するときに 2 つのサブネットを選択する必要があるので、新しく 2 つのサブネットを作成します。
前の記事で作成したnozomi-dev-public-rtbと作成したサブネットをひも付けます。

セキュリティグループを作成する

アプリケーションロードバランサー用のセキュリティグループを作成します。
今回はインターネットからのアクセスを受け入れたいので HTTPHTTPSのアクセスを許可します。

アプリケーションロードバランサーを作成する

色々の準備が整ったので、本題のアプリケーションロードバランサーを作成します。
ネットワーキングマッピングと、セキュリティグループは前の工程で作成したものを選択します。
リスナーとルーティングはプロトコルを https にすると先程取得した TLS 証明を設定できるようになるので、
プロトコルを HTTPS にして、TLS 証明書を設定します。

ec2 のセキュリティグループのインバウンドの設定を修正する

先程の記事で作成した ec2 のセキュリティグループのインバウンドルールをアプリケーションロードバランサーのみ受け入れるように修正します。

Route53 のルーティング先を変更する

最後に Route53 のルーティング先を変更します。
トラフィックのルーティング先をアプリケーションロードバランサーに変更します。
レコードを編集から、エイリアスをオンにして、アプリケーションロードバランサーを選択します。

反映されるのに少し時間を待つ必要があります。

これで https 通信するための全ての作業が完了しました。
これで Route53 で作成したドメイン名にアクセスすると Apache のデフォルトページが表示されるはずです。
また、URL の先頭にhttps://がついていることを確認してください。

GitHubで編集を提案

Discussion