ロードバランサーの背後にある各サーバーには、独自のSSL証明書が必要ですか?


66

ロードバランサー(haproxyなど)の背後に5つのWebサーバーがあり、それらが同じドメインのコンテンツを提供している場合、すべてのサーバーにSSL証明書が必要ですか、または各サーバーで同じ証明書を使用できますか?

特定のサーバーにすべてのSSLリクエストを送信できることは知っていますが、それには分散セッション情報が必要であり、それが実現しないことを期待しています。

回答:


66

ロードバランサーの背後に5つのWebサーバーがある場合(...)すべてのサーバーにSSL証明書が必要ですか、

場合によります。

TCPまたはIPレイヤー(OSIレイヤー4/3、別名L4、L3)で負荷分散を行う場合、すべてのHTTPサーバーにSSL証明書をインストールする必要があります。

HTTPSレイヤー(L7)で負荷分散を行う場合、通常は証明書をロードバランサーのみにインストールし、ロードバランサーとWebサーバー間のローカルネットワーク上でプレーンな暗号化されていないHTTPを使用します( Webサーバー)。

大規模なインストールがある場合は、インターネット-> L3ロードバランシング-> L7 SSLコンセントレーターのレイヤー->ロードバランサー-> L7 HTTPアプリケーションサーバーのレイヤー...

HAProxyの作者であるWilly Tarreauは、HTTP / HTTPSのロードバランシングの標準的な方法について、本当に素晴らしい概要を説明しています

各サーバーに証明書をインストールする場合、これをサポートする証明書を取得してください。通常、すべてのサーバーが1つの完全修飾ドメイン名のトラフィックを処理する限り、証明書は複数のサーバーにインストールできます。しかし、あなたが購入しているものを確認してください、証明書発行者は紛らわしい製品ポートフォリオを持つことができます...


1
現在、多くの発行者からサブジェクトの別名を持つ証明書を購入できます。SANフィールドでは、複数のFQDNに対して有効な証明書が許可されます。警告...古いWebクライアント(IE6!)で問題が発生する可能性があります。場合によっては、サブジェクト属性に無効なFQDNがある場合、クライアントはSAN属性を読み取れません。
ライアンフィッシャー

4
Willy Tarreauによるすばらしい記事にリンクするためのプラス1。
ネイサンハートリー

中規模から大規模のインストールでは、Big IPまたは他のロードバランサー(上記の2番目のオプション)でSSLオフロードを実行すると、高速で、スケーラブルで、複雑さ(一般的にLBに1つの証明書)があり、証明書から安価になるという利点がありますライセンス側(マルチドメインおよびSAN証明書は高価になります)。
ダレルティーグ

15

各サーバーで同じ証明書を使用できるはずです。Webサイトがwww.gathright.comの場合、そのFQDNの証明書を購入できるはずです。次に、バランサーの背後にある5つのサーバーのそれぞれにインストールします。

または、Webサーバーごとに個別の証明書を取得できますが、「Subject Alternative Name」として「www.gathright.com」を含めることができます。つまり、5つの証明書はそれぞれ、その一般的なFQDNとSSL特定のサーバーのFQDNに。


6
この応答を明確にするために、要求を生成したサーバーに証明書をインストールします。その後、他のサーバーにインポートするために、秘密キーとともにそのサーバーから証明書をエクスポートします。
チャールズ

ど!秘密鍵をエクスポートする必要があることを忘れていました。ありがとう、チャールズ。
ライアンフィッシャー

しかし、各サーバーでSAN証明書を使用する場合、それぞれに同じ秘密キーが必要ですか?
anschoewe

@anschoewe、いいえ。それらはそれぞれ独自の秘密鍵を持ち、5台のコンピューターがある場合は5倍の価格を支払う必要があります。
アレクシスウィルケ

1
@AlexisWilke-それが何を意味するのか分かりません:彼らがSAN証明書を使用する場合、証明書は1つ、したがって1つのキー、したがって1つの価格しか必要ありません。SAN証明書を複数のサーバーで使用して、1つ以上のドメインにサービスを提供できます。サーバーを追加するときではなく、ドメインを追加するときに価格が上昇する
-dwanderson

12

はい、ロードバランサーまたは負荷分散リバースプロキシの背後にあり、すべてが同じドメインのコンテンツを提供している場合、すべてのサーバーで同じ証明書と関連付けられた秘密キーを使用できます。

認証局によって署名された証明書は、認証局が証明書に記載されている名前を検証したことを表明します。Webサイトの証明書の場合、それはWebサイトのドメイン名を意味します。ブラウザは、HTTPSを介して通信している場合、通信しているサーバーが、ブラウザが通信していると考えるドメイン名と同じ名前の証明書を提示することを想定しています。(たとえば、VeriSignはbankofamerica.comのHacker Joeの証明書に署名する可能性が低いため、たとえHacker Joeがあなたとbankofamerica.com間のトラフィックをインターセプトしたとしても、Hacker Joeはbankofamerica.comおよびブラウザーの署名付き証明書を取得できません。あらゆる場所に大きな赤い警告フラグを立てます。)

重要なのはということです名前証明書のブラウザは、それがに話していると考えているドメイン名と一致します。ロードバランサーの背後にある限り、Webクラスター内の複数のWebサーバー間で正しい名前を付けた同じ証明書(秘密キーが関連付けられている)を使用できます。

また、SSL終了ロードバランサーを使用することもできます。この場合、ロードバランサーで(関連付けられた秘密キーを含む)証明書を使用し、Webサーバーは何の関係もないため、証明書を必要としません。 SSL。


6

私たちのセットアップは非常にうまく機能しています:

https trafic
     |
   pound
     |
http traffic
     |
  haproxy
     |
http traffic 
     |
web server 1 ... web server n

この方法でポンドはトラフィックを復号化します。ここからはすべてがhttpになります。利点:Webサーバーの構成が少なく、各ジョブに1つのツールがあります。ポンドマシンのCPUを最大限に使用し、Webサーバーを「正常」に保つことができます。稼働時間が重要な場合は、少なくとも2つ(ポンド、ハプロキシ、Webサーバー)を取得する必要があります。


2
これは、バックエンドコンピューターが安全なプライベートネットワーク上にあることも前提としています。...常にそうではないのクラウドで
アレクシス・ヴィルケ

3

AFAIR、各サーバーで同じ証明書を使用できます。また、SSLアクセラレータを実装して、すべてのSSLトラフィックをオフロードすることもできます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.