Suggerirei di terminare SSL sul sistema di bilanciamento del carico (che sia sulla tua rete, o presso un provider CDN o altro). Significa che il LB può ispezionare il traffico e può svolgere un lavoro migliore di bilanciamento del carico. Significa anche che il tuo sistema di bilanciamento del carico è responsabile della gestione di client lenti, implementazioni SSL non funzionanti e instabilità generale di Internet. È probabile che il tuo sistema di bilanciamento del carico disponga di risorse migliori per farlo rispetto ai tuoi server back-end. Significa anche che i certificati SSL che il mondo vede sono tutti sul bilanciatore del carico (che si spera li renda più facili da gestire).
L'alternativa qui è semplicemente bilanciare il carico delle connessioni TCP dai client alle spalle server finali. Poiché LB non è in grado di ispezionare cosa sta succedendo in questo modo, non può distribuire il carico in modo uniforme sui server back-end e i server back-end devono affrontare tutta la debolezza di Internet. Utilizzerei questo metodo solo se non ti fidi del tuo sistema di bilanciamento del carico, provider CDN o altro.
Che tu decifri di nuovo o meno dal bilanciatore del carico ai tuoi server back-end è una questione personale scelta e circostanza. Se hai a che fare con carte di credito o transazioni finanziarie, probabilmente sei regolamentato dal governo e quindi dovrai crittografare nuovamente. Probabilmente dovresti anche crittografare nuovamente se il traffico tra il bilanciamento del carico e i server back-end viaggia su reti non attendibili. Se stai solo ospitando il sito web della tua azienda, potresti essere in grado di evitare l'overhead aggiuntivo della ricrittografia, se non ti interessano davvero gli aspetti di sicurezza di esso.
La ricrittografia non lo fa Tuttavia, non aggiungere tutto il carico che potresti pensare. Di solito, il bilanciatore del carico sarà in grado di mantenere connessioni persistenti ai server, quindi il costo SSL sarà piuttosto basso per quel "salto" sulla rete.
L'ultima cosa a cui pensare è l'applicazione sui server back-end. Se tutto il traffico che arriva lì è HTTP, non può prendere decisioni in base al protocollo utilizzato dal client. Non può quindi dire "stai tentando di accedere alla pagina di accesso tramite HTTP, quindi ti reindirizzerò alla versione HTTPS della pagina", ad esempio. Puoi fare in modo che il bilanciatore del carico aggiunga un'intestazione HTTP per dire "questo proviene da HTTPS", ma tale intestazione richiede una gestione speciale nell'applicazione. A seconda della situazione, potrebbe essere più semplice crittografare nuovamente e lasciare che l'applicazione funzioni nel modo "predefinito" piuttosto che richiedere una modifica specifica del sito.
In sintesi, direi: terminare nel sistema di bilanciamento del carico e crittografate nuovamente sui server back-end. Se lo fai e noti qualche problema, puoi apportare modifiche se necessario.