2017-10-08 7 views
0

自分のAPIにカスタムの「信頼できるCA」設定が必要です。 ELBを使用していないときは、Webサーバーに "ca.pem"ファイルを設定することでこれを実現できます。しかし、ELBを使用している場合、私のWebサーバーはオリジナルの受信クライアント証明書(ただし、代わりにELBの証明書)を受け取らないと思います。AWS ELBの信頼できる認証局をカスタマイズする方法は?

ELBの背後にあっても何とかカスタムCAを有効にすることはできますか?

答えて

0

インスタンスは元のクライアントの証明書を表示しないだけでなく、クライアントと同じTLSセッションに実際には参加していません。 ELBクラシックとALBは2つの独立したTLSセッションを作成し、それらのペイロードを結合します。

あなたが望むことをするために、ELBはTLSに全く参加できません。それはあなたのサーバによってすべて行われなければならず、バランサはレイヤ4以下で動作する必要があります。これにより、レイヤ7でのみ動作するApplication Load Balancerが除外されます。

これには2つの解決策があります。

古い解決策は、TLS(SSL)を無効にして、TCPモードでELB(クラシック)を使用することでした。。 ELBは暗号化された接続からペイロードを盲目的にインスタンスに渡します。このインスタンスはブラウザと直接TLSをネゴシエートし、CAファイルを使用してブラウザを認証します。ただし、デフォルトでインスタンスにはクライアントのIPアドレスが表示されないため、ELBはレイヤ4モード(理解できない暗号化されたトラフィックの処理はもちろん)で動作しているため、ややこしいことはありません。 X-Forwarded-Forヘッダーを追加してください... ELBで "Proxy protocol"を有効にする必要があり、インスタンスはProxyプロトコルプリアンブルからクライアントアドレスを抽出する方法を理解していなければなりません。

新しいソリューションは、Network Load Balancerと呼ばれる第3の種類のバランサです。このサービスはレイヤ3で動作し、単一のエラスティックIPアドレスを複数のEC2インスタンスにマップして、特定のポートで着信要求を分散し、正常性のないインスタンスをローテーションから削除するヘルスチェックを行います。あなたのインスタンスは依然としてすべて TLS自身を処理する責任がありますが、着信接続のクライアントアドレスが表示されます。

関連する問題