¿Cada servidor detrás de un equilibrador de carga necesita su propio certificado SSL?

66

Si tiene 5 servidores web detrás de un equilibrador de carga (como haproxy) y están sirviendo contenido para el mismo dominio, ¿necesita certificados SSL para todos los servidores o puede usar el mismo certificado en cada servidor?

Sé que puede colocar todas las solicitudes SSL en un servidor específico, pero eso requiere información de sesión distribuida y espero que no llegue a eso.

Derek Gathright
fuente

Respuestas:

66

Si tiene 5 servidores web detrás de un equilibrador de carga (...) ¿necesita certificados SSL para todos los servidores,

Depende.

Si realiza el equilibrio de carga en la capa TCP o IP (capa OSI 4/3, también conocida como L4, L3), entonces sí, todos los servidores HTTP deberán tener instalado el certificado SSL.

Si equilibra la carga en la capa HTTPS (L7), normalmente instalará el certificado solo en el equilibrador de carga y usará HTTP sin cifrar en la red local entre el equilibrador de carga y los servidores web (para obtener el mejor rendimiento en el servidores web).

Si tiene una instalación grande , puede estar haciendo Internet -> Equilibrio de carga L3 -> capa de concentradores SSL L7 -> equilibradores de carga -> capa de servidores de aplicaciones HTTP L7 ...

Willy Tarreau, el autor de HAProxy, tiene una visión general muy agradable de las formas canónicas de equilibrio de carga HTTP / HTTPS .

Si instala un certificado en cada servidor, asegúrese de obtener un certificado que lo admita. Normalmente, los certificados se pueden instalar en varios servidores, siempre y cuando todos los servidores sirvan tráfico para un solo Nombre de dominio completo. Pero verifique lo que está comprando, los emisores de certificados pueden tener una cartera de productos confusa ...

Jesper Mortensen
fuente
1
Puede comprar certificados con nombres alternativos de sujeto de muchos emisores ahora. El campo SAN permite un certificado que es válido para múltiples FQDN. ADVERTENCIA ... Puede haber algunos problemas con clientes web más antiguos (IE6!), En algunos casos el cliente no leerá el atributo SAN si el atributo Asunto tiene un FQDN no válido.
Ryan Fisher
44
Más 1 por vincular a ese excelente artículo de Willy Tarreau.
Nathan Hartley
En instalaciones medianas a grandes, realizar la descarga SSL en Big IP u otro equilibrador de carga (segunda opción mencionada anteriormente) tiene las ventajas de ser más rápido, más escalable, menos complicado (generalmente un certificado en LB) y menos costoso del certificado lado de la licencia (los certificados multidominio y SAN se vuelven caros).
Darrell Teague el
15

Debería poder usar el mismo certificado en cada servidor. Si su sitio web es www.gathright.com, debería poder comprar un certificado para ese FQDN. Luego lo instala en cada uno de sus 5 servidores detrás del equilibrador.

Alternativamente, puede obtener un certificado por separado para cada servidor web, pero incluya 'www.gathright.com' como un "Nombre alternativo del sujeto", lo que significa que cada uno de los 5 certificados sería válido para SSL para ese FQDN general y SSL a los FQDN del servidor específico.

Ryan Fisher
fuente
66
Para aclarar esta respuesta, instalará el certificado en el servidor que generó la solicitud. Luego exportaría el certificado de ese servidor junto con la clave privada para importarlo en los otros servidores.
Charles
D'oh! Sí, olvidé mencionar que necesitas exportar la clave privada. Gracias Charles.
Ryan Fisher
Pero si uso certificados de SAN en cada servidor, ¿necesitan cada uno la misma clave privada?
anschoewe
@anschoewe, no. Cada uno tendría su propia clave privada y usted tendría que pagar x5 el precio si tiene 5 computadoras.
Alexis Wilke
1
@AlexisWilke: no estoy seguro de lo que eso significa: si usan un certificado SAN, solo necesitan un certificado y, por lo tanto, una clave y, por lo tanto, 1 precio. Los certificados SAN se pueden usar en múltiples servidores para servir uno o más dominios; el precio sube al agregar dominios , no cuando la adición de servidores
dwanderson
12

, puede usar el mismo certificado y la clave privada asociada en todos sus servidores, si están detrás de un equilibrador de carga o un proxy inverso de equilibrio de carga y si todos están sirviendo contenido para el mismo dominio.

Los certificados, cuando están firmados por una autoridad de certificación, afirman que la autoridad de certificación verificó el nombre que figura en el certificado. Para los certificados de sitios web, eso significa el nombre de dominio del sitio web. Su navegador espera que el servidor con el que está hablando, si está hablando por HTTPS, presente un certificado con el mismo nombre que el nombre de dominio con el que el navegador cree que está hablando. (Por ejemplo, no es probable que VeriSign firme el certificado de Hacker Joe para bankofamerica.com. Por lo tanto, incluso si Hacker Joe logra interceptar el tráfico entre usted y bankofamerica.com, Hacker Joe no tendrá un certificado firmado para bankofamerica.com y su navegador colocará grandes banderas rojas de advertencia por todo el lugar).

Lo que importa es que el nombre en el certificado coincida con el nombre de dominio con el que el navegador cree que está hablando. Puede usar el mismo certificado (con la clave privada asociada) con el nombre correcto en varios servidores web en un clúster web, siempre que estén detrás de un equilibrador de carga.

También puede usar un equilibrador de carga con terminación SSL, en cuyo caso usaría el certificado (con la clave privada asociada) en el equilibrador de carga, y los servidores web no necesitarían certificados porque no tendrían nada que ver con el SSL

Yfeldblum
fuente
6

Nuestra configuración ha funcionado muy bien:

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

De esta manera, la libra descifra el tráfico, de aquí en adelante todo es http. Ventajas: menos configuración en los servidores web, una herramienta para cada trabajo. Puede maximizar la CPU en la máquina de la libra y mantener los servidores web "normales". Debe obtener al menos dos de cada uno (pound, haproxy, servidores web), si el tiempo de actividad es importante.

jotango
fuente
2
Esto también supone que sus computadoras de back-end están en una red privada segura. En la nube, ese no es siempre el caso ...
Alexis Wilke
3

AFAIR, puede usar el mismo certificado en cada servidor. También puede implementar un acelerador SSL y descargar todo el tráfico SSL en él.

joeqwerty
fuente