ELB mit SSL-Weiterleitung zu entweder nginx oder haproxy. Welches ist für die Verarbeitung mehrerer Zertifikate geeignet?

ELB mit SSL-Weiterleitung zu entweder nginx oder haproxy. Welches ist für die Verarbeitung mehrerer Zertifikate geeignet?

Daher plane ich einen ELB mit SSL-Passthrough zu Servern, auf denen Haproxy oder Nginx läuft.

Ich werde möglicherweise Tausende von Lets-Encrypt-Zertifikaten hosten.

Ist Nginx oder Haproxy besser für die Handhabung Tausender SSL-Zertifikate geeignet? Oder gibt es diesbezüglich grundsätzlich keinen Unterschied?

Ich möchte das SSL-Terminal entweder bei Haproxy oder Nginx verwenden und hätte bei so vielen Zertifikatsdateien usw. gern eine Vorstellung davon, ob eines davon besser mit so vielen Zertifikaten umgehen kann oder nicht.

Antwort1

Gemäß derElastic Load Balancer-Dokumentation, Classic Load Balancer erlauben ein einzelnes Zertifikat pro Listener, mit bis zu 100 Listenern (auf verschiedenen Ports).

AnwendungslastenausgleichAndererseits besteht ein Limit von 25 Zertifikaten pro Balancer, obwohl Sie sie alle mit demselben Listener verwenden können.

Ich würde sagen, Ihr einziger praktikabler Ansatz für eine so große Menge an Zertifikaten besteht darin, Ihre EC2-Instanzen hinter einem Network Load Balancer bereitzustellen, der in einer niedrigeren Netzwerkschicht arbeitet und die SSL-Aushandlung vollständig an die Backend-Instanzen delegiert.

Sollte Ihre Arbeitslast HTTP-orientiert sein, würde ich sagen, dass Nginx das bessere Angebot als HAProxy bietet. Wenn Sie andere Protokolle proxyen möchten, ist HAproxy Ihre beste Wahl.

Antwort2

Beide sind großartig. Ich persönlich würde nginx verwenden, da Sie aus dieser Perspektive (soweit ich weiß) nicht mehrere Backends ausführen und Sie daher auf dieser Seite kein Haproxy benötigen.

Richten Sie Nginx einfach mit SSL und Proxy-Pass ein :)

Antwort3

Ich denke, dass das Laden von Tausenden von Zertifikaten mit HAProxy einfacher ist. Alles, was Sie tun müssen, ist, Ihre Zertifikate in einem einzigen Verzeichnis abzulegen, und HAProxy lädt alle Zertifikate mit demcrt-Richtlinie.

Eine Minimalkonfiguration für SSL-Offloading wäre also:

listen ssl_offload
   mode http
   bind IP:443 ssl crt <path-to-ssl-directory>
   timeout     client  30s
   timeout     server  30s
   timeout     connect 5s
   server srv1 IP:80 check 

HAProxy verwendet das richtige Zertifikat basierend auf dem vom Client bereitgestellten SNI-Hostnamen (derzeitunterstütztvon den meisten modernen Browsern).

Das Laden mehrerer SSL-Zertifikate ist hier nur eine Frage des Speicherverbrauchs. HAProxy benötigt eine PEM-Datei, die sowohl die erforderlichen Zertifikate als auch alle zugehörigen privaten Schlüssel enthält. Wenn also die durchschnittliche PEM-Datei etwa 5 KB groß ist (2048 RSA-Schlüssel), kostet das Laden von Millionen davon etwa 5 GB Speicher.

Während HAProxy Zertifikate pro Listener zuweist, vergibt NGINX meiner Meinung nach Zertifikate pro „Servername“, sodass Sie so viele Serverblöcke benötigen, wie Sie Domänen haben. Wenn Sie Tausende davon verwenden, müssen Sie dies wahrscheinlich per Skript ausführen.

verwandte Informationen