web-dev-qa-db-ja.com

ロードバランサーを使用している場合でも、EC2サーバーにSSL証明書が必要ですか?

AWSでLoadBalanserのセットアップを開始すると、いくつかの追加の質問に遭遇しました。

基本的に、EC2インスタンスにデプロイされたWebサイト/アプリがあります。証明書マネージャーを介してAWSで生成された証明書を使用してセキュリティを確保したいと思います。私はすでに持っているので 理解 EC2自体はこれを管理できず、それを有効にする簡単な方法の1つは、EC2の前にロードバランサーをデプロイして、ACM証明書でクライアント通信を保護することです。

簡単かもしれませんが、私にとってはそうではありません...

質問1:複数のEC2インスタンスをデプロイしたくないので、「アプリケーションロードバランサー」の代わりに「クラシックロードバランサー」をデプロイする必要があります(後者には少なくとも2つのEC2インスタンスが必要なため)。これは正しいです?

質問2:Webサイトの訪問者に、ブラウザに「安全な」表示を表示してもらいたい。これは、HTTPSをずっと使用する必要があることを意味すると思いますクライアント<->ロードバランサー<-> EC2であり、LBでSSL/HTTPSを終了できません。これは正しい仮定ですか?

質問3:前の仮定が正しい場合、ロードバランサーとEC2間のHTTPS通信に別の証明書を使用する必要がありますか?私がACMに持っているAfaiuは使用できません。これに使用する新しい プライベート証明書 をACMで生成するのが正しい方法でしょうか?

質問4:もしそうなら、プライベート証明書はエンドユーザーに完全に署名された証明書の利点を提供しますか、それとも自己署名証明書と見なされますか(私は望んでいません)?

質問5:おそらく完全に間違っています(そして証明書について実際にどれだけ知っているかを示しています;-)が、ec2インスタンスに別のssh証明書(IAMユーザーからの、ec2インスタンスへのsshに使用)があるため、これはロードバランサー<-> EC2ステップで使用されますか?

わかりました、少なくとも今のところはそれだけだと思います...ありがとう!

[〜#〜] update [〜#〜]役立つ回答のおかげで、これを機能させることができ、書いたときに思ったよりも簡単になりました。元の質問。すべてのデフォルトオプションを維持したまま、ACM証明書を使用してhttpリスナーを使用して「アプリケーションロードバランサー」を起動しました。外部DNSのCNAMEエントリをロードバランサーのDNS名に追加すると、SSLは問題なく機能します。

2
jola

Let's Encrypt証明書、またはその他の証明書をEC2インスタンスで直接使用できます。ただし、ACM証明書は使用できません。これにより、ロードバランサーが不要になります。それについての短いチュートリアルがあります ここ

あなたの質問に答えるために

  1. ALBに複数のEC2インスタンスが必要だとは思いませんが、1つで十分です。

  2. 正しく設定されていれば、ロードバランサーでHTTPSを終了できますが、ブラウザーは接続が安全であると表示します。 AWS内部ネットワークは信頼性が高く安全であると見なされているため、これは通常、ほとんどのワークロードに適しています。

  3. 他のタイプの証明書を使用して、エンドツーエンドの暗号化を行うことができます。

  4. 自己署名証明書がALBで機能するかどうかを確認する必要があります。 Let's Encryptは無料で簡単なので、なぜわざわざ悩むのかわかりません。

  5. いいえ、それらは異なるタイプの証明書です。

4
Tim

質問に直接答えるには:いいえ、ロードバランサーがSSLを終了するときにEC2サーバーにSSL証明書は必要ありません。ただし、有効なSSL証明書であれば、自己署名でもかまいません。署名したもの。 ALBはそれを受け入れます。

いいえ、必要ありません2つのEC2インスタンス ALBの背後にあり、1つのEC2で問題ありません。

いいえ、HTTP SSL証明書としてSSH証明書を使用することはできません。構造が異なります。

お役に立てば幸いです:)

3
MLu