EC2ウェブサーバーにトラフィックを分散するために、AWS Application Load Balancer(クラシックロードバランサー対)を設定しようとしています。コンプライアンス上の理由から、アプリケーションにはエンドツーエンドのSSL/HTTPS暗号化が必要です。
クライアントとWebサーバーの間でトラフィックを確実に暗号化する最も簡単な方法は、WebサーバーでHTTPS接続を終了することです。
私の最初の質問:この方法でHTTPSトラフィックをAWS Application Load Balancerを介してロードバランサーの背後にあるウェブサーバーに渡すことは可能ですか?
AWSのドキュメントから収集したものから、Classic Load Balancerを使用して、この方法でトラフィックを通過させることができます(TCP pass through)。ただし、Application Load Balancerは次のようになります。 HTTPS接続自体を終了してから、次のいずれかを実行します。
2番目の質問:ドキュメントの理解は正しいですか?
WebサーバーでSSL接続を終了するには、ロードバランサーリスナーをHTTPSからTCPに変更する必要があります。 ALBはこれをサポートせず、従来のELBのみをサポートします。さらに、WebサーバーでSSLを終了している場合、ロードバランサーはリクエストを復号化できないため、リクエストを検査できません。したがって、すべての新しいルーティング処理を行うことはできません。 ALBがサポートしていること。
ALBが提供する新機能に実際に使用し、エンドツーエンドの暗号化が必要な場合は、ALBでSSLを終了し、WebサーバーにSSL証明書をインストールする必要があります。 Webサーバー証明書は、クライアントではなくALBのみがその証明書を参照するため、自己署名証明書のようなものになります。
コンプライアンス上の理由(PCI、HIPAAなど)のためにエンドツーエンドの暗号化が必要だと思います。それ以外の場合は、設定の手間を経るほど説得力のある理由はありません。