Estoy creando un proxy para una API interna para permitir que los clientes se conecten sin tener que tener instalados los certificados autofirmados.
Los clientes (creados, propios y utilizados solo internamente) se conectarán a través de SSL al cuadro nginx, donde estoy usando XSendfile para validar las credenciales a nivel de aplicación (una aplicación de rails). Si las credenciales son válidas, la conexión se pasa de nuevo a nginx, donde utiliza proxy_pass para enviar la conexión al servidor ascendente.
Ahora esto funciona muy bien para las conexiones http estándar, pero estoy tratando de descubrir cómo agregar nuestros certificados a la mezcla.
Esta pregunta es casi idéntica a esta , pero con requisitos de certificado extraños.
¿Es esto posible con nginx? ¿Hay una mejor solución?
También me conformaría con http del cliente -> nginx, y certificado autofirmado de nginx a la API.
fuente
proxy_ssl_server_name on;
¡era todo lo que necesitaba para que esto funcionara cuando enviaba el tráfico a un host en Google App Engine usando su SSL incorporado administrado por Google! (Esto no es un certificado autofirmado ni nada, así que solo necesitaba esa línea). Gracias por el gran consejo.Creo que probablemente quieras algo como esto (obviamente simplificado para este ejemplo):
Lo único que podría tener que cambiar sería hacer explícito el "Host", si, por ejemplo, su nombre de host proxy no es el mismo que el nombre de host utilizado en el servidor proxy nginx.
fuente
Para cualquiera que se encuentre con esto en el futuro, terminé sin usar nginx para esto.
En cambio, terminé usando stunnel en "modo cliente". Muy fácil de configurar, y hace exactamente lo que necesito.
fuente