0

私はEBドッカーアプリケーションのHTTPSを管理する最善の方法を見つけようとしています。AWS Elastic Beanstalk VPC - ELBからインスタンスへのHTTPS

現時点で私は以下のアプローチを使用しています。

  1. ELBは443でHTTPS接続を受け入れ、インスタンスのHTTPポート80に転送します。
  2. ELBは80でHTTP接続を受け入れ、インスタンスのHTTPポート8080に転送します。
  3. インスタンスはポート80でHTTP接続を受け付け、ドッカーアプリに転送します。
  4. インスタンスは、ポート8080でHTTP接続を受け入れ、HTTPSにリダイレクトします。

これはすべて正常に動作します。これは、ドッカーアプリがリダイレクトをまったく心配する必要がないことを意味します。それはちょうどポート80で聞いて、それは事です。 ELBとドッカーのホストは残りを行います。

私はこの設定で懸念しているのは、ドッカーのアプリケーションが安全であることを知らないということです。私のアプリケーション内でこれをチェックすると、失敗するでしょう。

ドッカーアプリをドメイン名とSSL証明書とで完全に分離したいので、元のHTTPS接続をELBで終了したいと考えています。私はHTTPSプロトコルで要求を転送(再暗号化)するためにドッキングホスト(またはELB)を得ることができるいくつかの方法があるのだろうかと思っていますが、自己署名証明書を使用しています。

これは、ELBおよび/またはドッカーホストと私のドッカーアプリの間だけで、ブラウザではありません。

期限切れでない自己署名証明書を作成し、これをドッカーアプリ(現在Apache2を使用していますが、潜在的にnginxを使用する可能性があります)のWebサーバーに登録してから、ELBまたはドッカーに伝えてくださいリクエストをHTTPSとして転送するホスト、これは機能しますか?証明書が信頼されていないため、ある時点で転倒しますか?

または、実際に証明書を事前に生成する必要なく、ドッカーアプリのWebサーバーでHTTPS接続を終了できる方法がいくつかあります(これは、おそらく生成する必要があると思いますその場での証明書など)。

このようなことを行う推奨されるベストプラクティス方法はありますか?

答えて

0

ロードバランサでクライアント接続を終了し、バックエンドに転送する場合の一般的な解決策は、ロードバランサがバックエンド要求にヘッダーを追加してロードバランサを削除した情報を埋め込むことです。

ELB has a page on this

と使用しています次のヘッダー:

  • X-Forwarded-For - クライアントのIP
  • X-Forwarded-Proto - スキーム/プロトコル
  • X-Forwarded-Port - 着信ポート。

これらのヘッダーは、信頼できるクライアントでない限り、通常はクライアントから直接許可されません。 ELBがそれを世話してくれると思います。

関連する問題