¿Cómo integrar certificados de cliente para servidores ascendentes con nginx como proxy inverso?

2

Para mi VPS privado, estoy creando una configuración para diferentes aplicaciones web (Owncloud, ...) que depende de una combinación de diferentes contenedores de Docker. En la parte frontal, me gustaría usar un servicio web nginx como un proxy inverso que reenvíe las solicitudes HTTP entrantes en función del request-uri a los servicios web "detrás".

Para crear una configuración de este tipo utilizando HTTPS, nginx necesita certificados de cliente para los llamados servicios ascendentes, que se encuentran detrás del proxy. Mi pregunta ahora es, desde un punto de vista de seguridad, si es necesario usar certificados firmados por una CA. Mi idea es que el propio proxy inverso nginx es accesible por un dominio que está protegido por un certificado de Let's Encrypt (u otro certificado firmado por una CA de confianza). Si ahora llamo a https://example.com/owncloud , esto se reenvía al contenedor de aplicaciones para Owncloud que se encuentra en el mismo VPS. Nginx ahora necesita un certificado de cliente que me gustaría crear como autofirmado de acuerdo con el hecho de que es una comunicación interna en un solo sistema físico entre esos contenedores.

¿Podrían darme algunos consejos sobre la configuración y sobre mi perspectiva de seguridad sobre este tema? ¿Olvidé algunos puntos en mi concepción?

    
pregunta Supahupe 10.11.2017 - 11:49
fuente

2 respuestas

1

Por lo que tengo entendido,

VPS with Docker w/ domain name 'my-domain' [
  docker-mysql hosting intern ????
  docker-owncloud hosting intern 3000 and internal connect docker-sql
  docker-nginx hosting extern 80/443 and internal connect docker-owncloud:3000)
]

tienes opciones 2x:

  • mi-dominio / owncloud-subfolder
  • owncloud-subdomain.my-domain

Si desea ir a la ruta de la subcarpeta, es posible usar su certificado my-domain tal como está. Si va a la ruta de la subcarpeta, simplemente configurará owncloud como HTTP (no https) y luego usará location {} a proxy_pass desde nginx a docker-owncloud

location /owncloud-subfolder/ {
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_pass http://docker-owncloud:3000;
    }

Mi preferencia personal es que es más fácil configurar subdominios y administrar certificados de cifrado de permisos para cada uno de ellos, por ejemplo:

ca.ffeineaddiction.com
gogs.ca.ffeineaddiction.com
own.ca.ffeineaddiction.com

en mi caso ffeineaddiction.com es mi vps ( vultr ) y gogs.* y own.* se asignan a un servidor físico con 2 TB de almacenamiento a través de tinc ( tutorial sobre la configuración de tinc )

EDITAR:

  

Vuelva a leer la pregunta que aparentemente es diferente de lo que entendí que era la primera vez. Si entiendo bien ahora, no está preocupado por los certificados externos que Nginx está hospedando, sino por el certificado de Clientside en Nginx para conectarse a la instancia HTTPS de owncloud el 127.0.0.1 ... en mi configuración mi solución a esto es no tener uno ... simplemente uso HTTP entre OwnCloud y Nginx, ya que es todo interno al cuadro (o sobre TINC en mi caso).

    
respondido por el CaffeineAddiction 11.01.2018 - 22:30
fuente
0

Creo que tienes razón. De hecho, el uso de certificados autofirmados dentro de su límite de seguridad puede ser más seguro siempre y cuando esté administrando correctamente su certificado de CA raíz (por ejemplo, manteniéndolo sin conexión y seguro).

No hay ninguna razón para que los recursos internos utilicen un certificado verificado externamente de una CA pública.

    
respondido por el Julian Knight 12.11.2017 - 16:00
fuente

Lea otras preguntas en las etiquetas