Benötigt jeder Server hinter einem Load Balancer ein eigenes SSL-Zertifikat?

66

Wenn Sie 5 Webserver hinter einem Load Balancer (wie z. B. Haproxy) haben und diese Inhalte für dieselbe Domain bereitstellen, benötigen Sie SSL-Zertifikate für alle Server, oder können Sie auf jedem Server dasselbe Zertifikat verwenden?

Ich weiß, dass Sie alle SSL-Anfragen auf einen bestimmten Server stellen können, aber das erfordert verteilte Sitzungsinformationen und hofft, dass es nicht dazu kommt.

Derek Gathright
quelle

Antworten:

66

Wenn Sie 5 Webserver hinter einem Load Balancer haben (...), benötigen Sie SSL-Zertifikate für alle Server,

Es hängt davon ab, ob.

Wenn Sie den Lastenausgleich auf der TCP- oder IP-Ebene (OSI-Ebene 4/3, auch bekannt als L4, L3) durchführen, muss auf allen HTTP-Servern das SSL-Zertifikat installiert sein.

Wenn Sie den Lastenausgleich auf der HTTPS - Ebene (L7) durchführen, installieren Sie das Zertifikat normalerweise nur auf dem Load Balancer und verwenden unverschlüsseltes HTTP über das lokale Netzwerk zwischen dem Load Balancer und den Webservern (für eine optimale Leistung auf der HTTPS - Ebene) Webserver).

Wenn Sie über eine umfangreiche Installation verfügen , führen Sie möglicherweise Internet -> L3-Lastenausgleich -> Schicht von L7-SSL-Konzentratoren -> Lastenausgleich -> Schicht von L7-HTTP-Anwendungsservern aus ...

Willy Tarreau, der Autor von HAProxy, hat einen wirklich guten Überblick über die kanonischen Möglichkeiten des Lastausgleichs von HTTP / HTTPS .

Wenn Sie auf jedem Server ein Zertifikat installieren, stellen Sie sicher, dass Sie ein Zertifikat erhalten, das dies unterstützt. Normalerweise können Zertifikate auf mehreren Servern installiert werden, sofern alle Server den Datenverkehr nur für einen vollqualifizierten Domänennamen bereitstellen. Überprüfen Sie jedoch, was Sie kaufen. Zertifikataussteller können ein verwirrendes Produktportfolio haben.

Jesper Mortensen
quelle
1
Sie können Zertifikate mit alternativen Antragstellernamen jetzt bei vielen Ausstellern kaufen. Das SAN-Feld ermöglicht ein Zertifikat, das für mehrere FQDNs gültig ist. WARNUNG ... Es können Probleme mit älteren Web-Clients (IE6!) Auftreten. In einigen Fällen liest der Client das SAN-Attribut nicht, wenn das Subject-Attribut einen ungültigen FQDN enthält.
Ryan Fisher
4
Plus 1 für den Link zu diesem ausgezeichneten Artikel von Willy Tarreau.
Nathan Hartley
In mittleren bis großen Installationen hat das SSL-Offloading auf der Big IP oder einem anderen Load-Balancer (zweite oben aufgeführte Option) den Vorteil, dass es schneller, skalierbarer, unkomplizierter (in der Regel ein Zertifikat auf LB) und kostengünstiger als das Zertifikat ist Lizenzseite (Multi-Domain- und SAN-Zertifikate werden teuer).
Darrell Teague
15

Sie sollten auf jedem Server dasselbe Zertifikat verwenden können. Wenn Ihre Website www.gathright.com lautet, sollten Sie in der Lage sein, ein Zertifikat für diesen FQDN zu erwerben. Dann installieren Sie es auf jedem Ihrer 5 Server hinter dem Balancer.

Alternativ können Sie für jeden Webserver ein separates Zertifikat erhalten. Geben Sie jedoch "www.gathright.com" als "alternativen Antragstellernamen" an, was bedeutet, dass jede der 5 Zertifikate für SSL für diesen allgemeinen FQDN sowie für SSL gültig ist an die spezifischen Server-FQDNs.

Ryan Fisher
quelle
6
Um diese Antwort zu verdeutlichen, installieren Sie das Zertifikat auf dem Server, der die Anforderung generiert hat. Anschließend exportieren Sie das Zertifikat zusammen mit dem privaten Schlüssel von diesem Server, um es auf den anderen Servern zu importieren.
Charles
D'oh! Ja, ich habe vergessen zu erwähnen, dass Sie den privaten Schlüssel exportieren müssen. Danke, Charles.
Ryan Fisher
Aber wenn ich SAN-Zertifikate auf jedem Server verwende, benötigen sie jeweils denselben privaten Schlüssel?
Anschoewe
@anschoewe, nein. Sie hätten jeweils einen eigenen privaten Schlüssel, und Sie müssten den Preis fünffach bezahlen, wenn Sie fünf Computer hätten.
Alexis Wilke
1
@AlexisWilke - nicht sicher, was das bedeutet: Wenn sie ein SAN-Zertifikat verwenden, benötigen sie nur ein Zertifikat und damit einen Schlüssel und damit einen Preis. SAN-Zertifikate können auf mehreren Servern verwendet werden, um eine oder mehrere Domänen zu bedienen. Der Preis steigt beim Hinzufügen von Domains , nicht beim Hinzufügen von Servern
dwanderson
12

JA , Sie können auf allen Servern dasselbe Zertifikat und denselben zugeordneten privaten Schlüssel verwenden, wenn diese sich hinter einem Load-Balancer oder einem Load-Balancing-Reverse-Proxy befinden und Inhalte für dieselbe Domain bereitstellen.

Zertifikate bestätigen, wenn sie von einer Zertifizierungsstelle signiert wurden, dass die Zertifizierungsstelle den im Zertifikat aufgeführten Namen überprüft hat . Bei Zertifikaten für Websites ist dies der Domainname der Website. Ihr Browser erwartet, dass der Server, mit dem er kommuniziert, bei HTTPS ein Zertifikat mit demselben Namen wie der Domänenname vorlegt, mit dem der Browser kommuniziert. (Beispielsweise ist es unwahrscheinlich, dass VeriSign das Zertifikat von Hacker Joe für bankofamerica.com signiert. Selbst wenn Hacker Joe den Datenverkehr zwischen Ihnen und bankofamerica.com abfängt, verfügt Hacker Joe nicht über ein signiertes Zertifikat für bankofamerica.com und Ihren Browser wird überall große rote Warnflaggen anbringen.)

Entscheidend ist, dass der Name auf dem Zertifikat mit dem Domainnamen übereinstimmt, mit dem der Browser zu sprechen glaubt. Sie können dasselbe Zertifikat (mit zugeordnetem privatem Schlüssel) mit dem korrekten Namen auf mehreren Webservern in einem Webcluster verwenden, sofern diese sich hinter einem Lastenausgleich befinden.

Sie können auch einen SSL-terminierenden Load Balancer verwenden. In diesem Fall würden Sie das Zertifikat (mit dem zugehörigen privaten Schlüssel) auf dem Load Balancer verwenden, und die Webserver würden keine Zertifikate benötigen, da sie nichts damit zu tun hätten die SSL.

yfeldblum
quelle
6

Unser Setup hat sehr gut funktioniert:

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

Auf diese Weise entschlüsselt Pfund den Verkehr, ab hier ist alles direkt http. Vorteile: Weniger Konfiguration auf den Webservern, ein Tool für jeden Auftrag. Sie können die CPU auf dem Pfund-Rechner maximal ausnutzen und die Webserver "normal" halten. Sie sollten mindestens zwei von jedem (Pfund, Haproxy, Webserver) erhalten, wenn die Verfügbarkeit wichtig ist.

Jotango
quelle
2
Dies setzt auch voraus, dass sich Ihre Back-End-Computer in einem sicheren privaten Netzwerk befinden. In der Wolke ist das nicht immer der Fall ...
Alexis Wilke
3

AFAIR können Sie auf jedem Server das gleiche Zertifikat verwenden. Sie können auch einen SSL-Beschleuniger implementieren und den gesamten SSL-Verkehr dorthin verlagern.

Joeqwerty
quelle