Ogni server dietro un bilanciamento del carico ha bisogno del proprio certificato SSL?


66

Se hai 5 server Web dietro un bilanciamento del carico (come haproxy) e stanno offrendo contenuti per lo stesso dominio, hai bisogno di certificati SSL per tutti i server o puoi usare lo stesso certificato su ciascun server?

So che puoi inserire tutte le richieste SSL su un server specifico, ma ciò richiede informazioni sulla sessione distribuita e spero che non arrivi a quello.

Risposte:


66

Se hai 5 server Web dietro un bilanciamento del carico (...) hai bisogno dei certificati SSL per tutti i server,

Dipende.

Se si esegue il bilanciamento del carico sul livello TCP o IP (livello OSI 4/3, aka L4, L3), quindi sì, tutti i server HTTP dovranno disporre del certificato SSL installato.

Se si carica il bilanciamento sul livello HTTPS (L7), si installa comunemente il certificato sul solo bilanciamento del carico e si utilizza HTTP non crittografato semplice sulla rete locale tra il bilanciamento del carico e i server Web (per prestazioni ottimali sul server web).

Se hai una grande installazione, allora potresti fare Internet -> bilanciamento del carico L3 -> livello di concentratori SSL L7 -> bilanciatori di carico -> livello dei server applicazioni HTTP L7 ...

Willy Tarreau, l'autore di HAProxy, ha una bella panoramica dei modi canonici di bilanciamento del carico HTTP / HTTPS .

Se installi un certificato su ciascun server, assicurati di ottenere un certificato che supporti questo. Normalmente i certificati possono essere installati su più server, purché tutti i server servano il traffico per un solo nome di dominio completo. Ma verifica cosa stai acquistando, gli emittenti di certificati possono avere un portafoglio di prodotti confuso ...


1
Ora puoi acquistare certificati con nomi alternativi soggetto da molti emittenti. Il campo SAN consente un certificato valido per più FQDN. ATTENZIONE ... Potrebbero esserci dei problemi con i client web più vecchi (IE6!), In alcuni casi il client non leggerà l'attributo SAN se l'attributo Subject ha un nome di dominio completo non valido.
Ryan Fisher,

4
Più 1 per il collegamento a quell'eccellente articolo di Willy Tarreau.
Nathan Hartley,

In installazioni medio-grandi, eseguire l'offload SSL sul Big IP o altro bilanciamento del carico (seconda opzione elencata sopra) presenta i vantaggi di essere più veloce, più scalabile, meno complicato (generalmente un certificato su LB) e meno costoso dal certificato lato delle licenze (i certificati multi-dominio e SAN sono costosi).
Darrell Teague,

15

Dovresti essere in grado di utilizzare lo stesso certificato su ciascun server. Se il tuo sito web è www.gathright.com, dovresti essere in grado di acquistare un certificato per quel nome FQDN. Quindi lo installi su ciascuno dei tuoi 5 server dietro il bilanciamento.

In alternativa, è possibile ottenere un certificato separato per ciascun server Web, ma includere "www.gathright.com" come "Nome alternativo soggetto", il che significa che ciascuna delle 5 certificazioni sarebbe valida per SSL per quel FQDN generale e SSL agli FQDN specifici del server.


6
Per chiarire questa risposta, installerai il certificato sul server che ha generato la richiesta. Quindi esportare il certificato da quel server insieme alla chiave privata per importarlo sugli altri server.
Charles,

D'oh! Sì, ho dimenticato di dire che è necessario esportare la chiave privata. Grazie Charles.
Ryan Fisher,

Ma se utilizzo i certificati SAN su ciascun server, ognuno di essi necessita della stessa chiave privata?
Anschoewe,

@anschoewe, no. Ognuno di loro avrebbe la propria chiave privata e dovresti pagare x5 il prezzo se hai 5 computer.
Alexis Wilke,

1
@AlexisWilke - non sono sicuro di cosa significhi: se usano un certificato SAN, hanno bisogno solo di un certificato, quindi di una chiave, e quindi di 1 prezzo. I certificati SAN possono essere utilizzati su più server per servire uno o più domini; il prezzo aumenta quando si aggiungono domini , non quando si aggiungono server
dwanderson,

12

, è possibile utilizzare lo stesso certificato e la chiave privata associata su tutti i server, se si trovano dietro un bilanciamento del carico o proxy inverso del bilanciamento del carico e se stanno tutti servendo contenuti per lo stesso dominio.

I certificati, quando firmati da un'autorità di certificazione, affermano che l'autorità di certificazione ha verificato il nome elencato sul certificato. Per i certificati per siti Web, ciò significa il nome di dominio del sito Web. Il tuo browser si aspetta che il server con cui sta parlando, se sta parlando su HTTPS, presenti un certificato con lo stesso nome del nome di dominio con cui il browser pensa stia parlando. (Ad esempio, è improbabile che VeriSign firmi il certificato di Hacker Joe per bankofamerica.com. Quindi, anche se Hacker Joe riesce a intercettare il traffico tra te e bankofamerica.com, Hacker Joe non avrà un certificato firmato per bankofamerica.com e il tuo browser metterà grandi bandiere rosse in tutto il luogo.)

Ciò che conta è che il nome sul certificato corrisponda al nome di dominio con cui il browser pensa stia parlando. È possibile utilizzare lo stesso certificato (con chiave privata associata) che porta il nome corretto su più server Web in un cluster Web, purché siano dietro un bilanciamento del carico.

È inoltre possibile utilizzare un bilanciamento del carico con terminazione SSL, nel qual caso si utilizzerà il certificato (con chiave privata associata) sul bilanciamento del carico e i server Web non avrebbero bisogno di certificati perché non avrebbero nulla a che fare con SSL.


6

La nostra configurazione ha funzionato molto bene:

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

In questo modo la sterlina decodifica il traffico, da qui in poi tutto è dritto http. Vantaggi: meno configurazione sui server Web, uno strumento per ogni lavoro. È possibile massimizzare la CPU sul pound machine e mantenere i server Web "normali". Dovresti ottenere almeno due di ciascuno (pound, haproxy, web server), se il tempo di attività è importante.


2
Ciò presuppone anche che i computer back-end si trovino su una rete privata sicura. Nel cloud non è sempre così ...
Alexis Wilke,

3

AFAIR, puoi utilizzare lo stesso certificato su ciascun server. Puoi anche implementare un acceleratore SSL e scaricare tutto il traffico SSL su di esso.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.