Cifrado en caso de arquitectura distribuida

0

Tengo la infraestructura de la aplicación de la siguiente manera: cliente web - > equilibrador de carga - > Apache (servidor web) - > Weblogic (servidor de aplicaciones).

Podría entender que, en caso de una solicitud HTTPS, se producirá un protocolo de enlace SSL, se creará un túnel y luego se cifrarán todos los datos de la sesión.

Pero no pude obtener una respuesta clara para la siguiente pregunta:

  1. Estoy 90% seguro de que el equilibrador de carga no participará (ni tendrá nada que ver con) en el protocolo de enlace de SSL porque es solo para el equilibrio de carga, por lo que se reenviará a Apache en función de su equilibrio. ¿Podría por favor confirmar?
  2. Todos los recursos de la aplicación están en Weblogic (servidor de la aplicación), por lo que me hace sentir que finalmente el cifrado y el protocolo SSL (o el túnel) ocurrirán desde Weblogic, y sería Weblogic el que seleccionará una de las suites de cifrado que proporciona Por navegador web, para encriptación.
    • ¿Estoy en lo correcto?
    • Si es así, ¿cuál sería la función de Apache en el protocolo SSL? ¿Apache simplemente reenviará la solicitud a Weblogic y el túnel de extremo a extremo será entre el navegador web y Weblogic?
  3. Leí que el número máximo de conexiones está controlado por Apache, por lo que me sugiere que habría un protocolo de enlace SSL entre el navegador web y Apache. Y si eso sucede, ¿no sería excesivo porque habría 2 protocolos SSL y cifrado (navegador web - Apache y Apache - Weblogic)?
  4. ¿Weblogic o Apache realizarán la selección del conjunto de cifrado?
    • Podría identificar que para la selección del conjunto de cifrado Weblogic se puede controlar usando Dweblogic.security.SSL.Ciphersuites=TLS_RSA_WITH_AES_256_CBC_SHA256" pero, ¿cómo se puede controlar en Apache?
pregunta hagrawal 16.08.2015 - 22:27
fuente

2 respuestas

4

Creo que está buscando Terminación SSL , lo que básicamente sucede es que el equilibrador de carga maneja todo el proceso TLS / SSL y reenvía las solicitudes a los servidores finales. Este enfoque apunta a agilizar la implementación y administración de las conexiones SSL, imagine un equilibrador de carga que atiende a 20 servidores back-end, se necesitarían 20 máquinas para poder manejar conexiones desde el mismo dominio, y si decide actualizar sus certificados, eso es mucho de trabajo. Sin embargo, si lo implementa en el equilibrador de carga, todos los servidores de servicios de fondo no deben preocuparse por este proceso.

  

Cliente web - > HTTPS - > Equilibrador de carga - > HTTP - > Servidores Backend

Una cosa a considerar es que confiaría en que la conexión entre su equilibrador de carga y sus servidores de servicios de fondo es segura, lo que para la mayoría de los esquemas de servidor no es realmente un problema.

Aquí hay un artículo sobre cómo implementa esto para NginX

    
respondido por el Purefan 17.08.2015 - 09:52
fuente
2
  1. No tengo muchos conocimientos sobre el equilibrio de carga, pero: dependiendo de su equilibrador de carga, la terminación SSL / TLS podría o no podría ser administrada por él.

    1. Si usa HAProxy o nginx como equilibrador de carga, estos funcionarán en la capa / capa 7 de la aplicación, en este caso TLS + HTTP, y manejarán la terminación TLS, por lo que toda la configuración de TLS estará allí y las solicitudes sin cifrar luego se reenviará a los servidores Apache
    2. Si usa el Servidor Virtual de Linux o cualquier otro equilibrador de carga que trabaje en la capa / capa 4 de Transporte, la conexión se reenviará a los servidores Apache, por lo que el equilibrador de carga no administra la terminación TLS.
  2. Ya que usa el alojamiento virtual, no puede hacer la terminación TLS (pública) en Weblogic: el protocolo HTTP está encapsulado dentro del protocolo TLS y Apache debe conocer el host virtual seleccionado. Esto se logra con la extensión TLS "Indicación del nombre del servidor" (SNI), donde el TLS dice el nombre del host virtual, para verificar el host virtual con el certificado correcto. Por lo tanto, Apache debe abrir los paquetes TLS y HTTP, seleccionar el host virtual y reenviar paquetes no cifrados a los servidores de aplicaciones. Por lo tanto, la terminación TLS debe estar en su equilibrador de carga (1.1.) O en su Apaches (2.).

  3. En el caso de que su terminación TLS esté en sus Apaches, debe configurarla allí: claves, protocolos y cifrados TLS, sesiones TLS, OCSP, HSTS y HPKP, etc. Opcionalmente, puede conectar sus Apaches a Sus servidores de aplicaciones con TLS, pero probablemente no sean necesarios si opera en una red interna en la que tiene confianza de que no hay espionaje. Si desea hacerlo, tendrá que configurar sus servidores de aplicaciones con una configuración TLS.

  4. Un buen recurso para la configuración de TLS es enlace . Hay ejemplos para Apache, pero también recomendaciones generales para otros servidores, por ejemplo, si desea configurar Weblogic para recibir conexiones TLS.

respondido por el Seb35 17.08.2015 - 11:20
fuente

Lea otras preguntas en las etiquetas