HTTP から HTTPS へのリダイレクトの設定 - AWS Elastic Beanstalk

HTTP から HTTPS へのリダイレクトの設定

Elastic Beanstalk 環境用に HTTPS を設定する とそのサブトピックでは、HTTPS を使用して、アプリケーションへのトラフィックの暗号化を確保するように Elastic Beanstalk 環境を設定する方法について説明します。このトピックでは、エンドユーザーがアプリケーションへの HTTP トラフィックを開始した場合に、それをエレガントに処理する方法について説明します。これを行うには、HTTP から HTTPS へのリダイレクトを設定します。これは、HTTPS の強制と呼ばれることもあります。

リダイレクトを設定するには、まず、HTTPS トラフィックを処理するように環境を設定します。次に、HTTP トラフィックを HTTPS にリダイレクトします。これらの 2 つのステップについては、以下のサブセクションで説明します。

HTTPS トラフィックを処理するように環境を設定する

環境の負荷分散設定に応じて、以下のいずれかの操作を行います。

HTTP トラフィックを HTTPS にリダイレクトする

HTTP トラフィックを HTTPS にリダイレクトするように、環境のインスタンスのウェブサーバーまたは環境の Application Load Balancer を設定できます。次のいずれかを行ってください。

  • インスタンスウェブサーバーを設定する – この方法はいずれのウェブサーバー環境でも機能します。HTTP リダイレクトレスポンスステータスで HTTP トラフィックに応答するように、Amazon Elastic Compute Cloud (Amazon EC2) インスタンスのウェブサーバーを設定します。この設定は、環境のプラットフォームによって異なります。GitHub の https-redirect コレクションでプラットフォームのフォルダを探して、そのフォルダ内のサンプル設定ファイルを使用します。

    環境が Elastic Load Balancing ヘルスチェックを使用している場合、ロードバランサーは、正常なインスタンスが HTTP ヘルスチェックメッセージに HTTP 200 (OK) メッセージで応答することを予期しています。したがって、ウェブサーバーはこれらのメッセージを HTTPS にリダイレクトすべきではありません。https-redirect のサンプル設定ファイルは、この要件を正しく処理します。

  • ロードバランサーを設定する – この方法は、Application Load Balancer を使用する負荷分散された環境がある場合に機能します。Application Load Balancer は HTTP トラフィックの受信時にリダイレクトレスポンスを送信できます。この場合、環境のインスタンスでリダイレクトを設定する必要はありません。GitHub には、リダイレクト用に Application Load Balancer を設定する方法を示す 2 つのサンプル設定ファイルがあります。alb-http-to-https-redirection-full.config 設定ファイルは、ポート 443 で HTTPS リスナーを作成し、受信 HTTP トラフィックを HTTPS にリダイレクトするようにデフォルトのポート 80 リスナーを変更します。alb-http-to-https-redirection.config 設定ファイルは、443 リスナーが定義されていることを想定しています (標準の Elastic Beanstalk 設定名前空間、または Elastic Beanstalk コンソールを使用できます)。次に、ポート 80 リスナーをリダイレクト用に変更します。