ロードバランサー(haproxyなど)の背後に5つのWebサーバーがあり、それらが同じドメインのコンテンツを提供している場合、すべてのサーバーにSSL証明書が必要ですか、それとも各サーバーで同じ証明書を使用できますか?
すべてのSSLリクエストを特定のサーバーに配置できることはわかっていますが、そのためには分散セッション情報が必要であり、それが実現しないことを期待しています。
ロードバランサーの背後に5つのWebサーバーがある場合(...)、すべてのサーバーにSSL証明書が必要ですか?
場合によります。
TCPまたはIPレイヤー(OSIレイヤー4/3、別名L4、L3))で負荷分散を行う場合、はい、すべてのHTTPサーバーにSSL証明書をインストールする必要があります。
HTTPSレイヤー(L7)で負荷分散を行う場合は、通常、ロードバランサーのみに証明書をインストールし、ロードバランサーとWebサーバーの間のローカルネットワークでプレーンな非暗号化HTTPを使用します(ウェブサーバー)。
largeをインストールしている場合は、インターネット-> L3ロードバランシング-> L7 SSLコンセントレーターのレイヤー->ロードバランサー-> L7 HTTPアプリケーションサーバーのレイヤーを実行している可能性があります。 ..
HAProxyの作者であるWilly Tarreauが HTTP/HTTPSのロードバランシングの標準的な方法 の概要を説明しています。
各サーバーに証明書をインストールする場合は、これをサポートする証明書を取得してください。通常、証明書は複数のサーバーにインストールできますが、サーバーがすべて1つの完全修飾ドメイン名のトラフィックのみを処理している場合に限ります。しかし、購入しているものを確認すると、証明書の発行者は混乱する製品ポートフォリオを持つ可能性があります...
各サーバーで同じ証明書を使用できるはずです。 Webサイトがwww.gathright.comの場合、そのFQDNの証明書を購入できるはずです。次に、バランサーの背後にある5台のサーバーのそれぞれにインストールします。
または、Webサーバーごとに個別の証明書を取得し、「www.gathright.com」を「サブジェクトの別名」として含めることもできます。これは、5つの証明書のそれぞれが、その一般的なFQDNおよびSSLに対するSSLに有効であることを意味します。特定のサーバーのFQDNに。
[〜#〜] yes [〜#〜]、すべてのサーバーで同じ証明書と関連付けられた秘密鍵を使用できます(サーバーがロードバランサーまたは負荷分散リバースプロキシの背後にある場合、およびそれらがすべてが同じドメインのコンテンツを提供しています。
証明書は、認証局によって署名されている場合、認証局が証明書にリストされているnameを検証したことを表明します。 Webサイトの証明書の場合、それはWebサイトのドメイン名を意味します。ブラウザは、通信しているサーバーがHTTPS経由で通信している場合、ブラウザがドメイン名と同じnameの証明書を提示することを期待していますそれが話していると思います。 (たとえば、VeriSignはbankofamerica.comのHacker Joeの証明書に署名する可能性は低いです。したがって、Hacker Joeがあなたとbankofamerica.comの間のトラフィックを傍受できたとしても、Hacker Joeはbankofamerica.comとブラウザーの署名された証明書を持っていません。大きな赤い警告フラグがあちこちに表示されます。)
重要なのは、証明書のnameが、ブラウザが通信していると考えるドメイン名と一致することです。ロードバランサーの背後にある限り、Webクラスター内の複数のWebサーバーにわたって正しい名前が付いた同じ証明書(および関連付けられた秘密キー)を使用できます。
SSL終了のロードバランサーを使用することもできます。この場合、ロードバランサーで証明書(関連付けられた秘密キーを含む)を使用します。Webサーバーは何も行わないため、証明書は必要ありません。 SSL。
私たちのセットアップは非常にうまくいきました:
https trafic
|
pound
|
http traffic
|
haproxy
|
http traffic
|
web server 1 ... web server n
このようにして、ポンドはトラフィックを復号化します。これ以降、すべてがまっすぐなhttpになります。利点:Webサーバーの構成が少なく、ジョブごとに1つのツール。ポンドマシンのCPUを最大にして、Webサーバーを「通常」に保つことができます。アップタイムが重要な場合は、少なくとも2つ(ポンド、haproxy、Webサーバー)を取得する必要があります。
AFAIR、各サーバーで同じ証明書を使用できます。また、SSLアクセラレーターを実装して、すべてのSSLトラフィックをそれにオフロードすることもできます。