¿Reutilizar el certificado de cliente para el proxy TLS con nginx?

¿Reutilizar el certificado de cliente para el proxy TLS con nginx?

Tengo una aplicación TCP que utiliza TLS mutuo para autenticar a los clientes que se conectan.
Debido al aumento del tráfico, me gustaría agrupar la aplicación en clústeres y equilibrar la carga de los nodos con nginx. Ya lo tengo trabajando con streamel módulo de nginx, que (a mi entender) actúa como un equilibrador de capa 4.

En este punto, me parece razonable descartar los intentos de conexión que no pasan la verificación mTLS inmediatamente en nginx, para que los nodos ascendentes no tengan que preocuparse por ellos.
Sin embargo, esto significa que tendría que finalizar la conexión TLS en nginx. Lamentablemente, mi aplicación depende de obtener la identidad del cliente del certificado de cliente verificado.

¿Hay alguna forma de hacer que mTLS verifique en nginx y luego reutilice el certificado del cliente para la conexión ascendente?

Para aplicaciones HTTP, he visto la solución para finalizar la conexión TLS en nginx y pasar el certificado del cliente como un encabezado personalizado (por ejemplo proxy_set_header X-SSL-CERT $ssl_client_cert;), pero eso obviamente no funcionaría en mi caso.

Respuesta1

No, no puedes hacer eso. No se puede finalizar la conexión y mantenerla de un extremo a otro.

Pero si tuconfianzasu proxy, su proxy puede simplemente inyectar un encabezado y usar su propio certificado de cliente para autenticar que la conexión es confiable y está iniciada por un certificado de cliente determinado.

información relacionada