Nextcloud en Windows server - Certificados

W0rd

A la hora de instalar nextcloud veo que no es compatible con el 'php' que trae el servidor IIS. Estoy pensado en tirar del hypervisor y poner una maquina virtual con un ubuntu server, 512mb de ram y meter el nextcloud ahí.
El problema lo veo a la hora de configurar redirecciones y certificados.

Tengo en el iis certificados ssl de 'dominio' ,no estoy muy puesto, pero no son certificados wildcard, son SAN (Let’s Encrypt).
La idea es capturar el hostname (ej, nextcloud.dominio.com), y que redirija a la ip privada de la maquina virtual (ej: 10.0.0.2), con apache2 y demás.
¿Donde añadiría el certificado, en el iis o en el apache2?

Otra opción seria instalar un xampp pero sigo teniendo el problema de los certificados (y el puerto).

Traber

Para eso, ¿por qué no montas un Apache2 con el mismo certificado de Let's Encrypt y con reverse proxy? El esquema sería algo como esto:

Cliente (HTTPS) <-> (HTTPS) Apache2 (HTTP) <-> (HTTP) NextCloud

No tendrías que hacer redirección, y el sistema usaría HTTPS, aunque entre el Apache2 y el NextCloud vaya bajo HTTP, lo que importa es la conexión entre cliente y servidor.

En la máquina acabarías teniendo:

  • IIS (con lo que tengas ahora).
  • Un Apache2 como reverse proxy, imagino que tendrás que meterlo en otro puerto diferente.
    Y en la virtual:
  • NextCloud.

En cosas que me daban por saco los certificados casi siempre he acabado montandolo con un Apache2 con el reverse proxy e iban crema xD.

Edit: ¿IIS es obligatorio? Porque si no lo es, yo haría lo siguiente:

  • Mandar IIS a tomar por donde amargan los pepinos.

Si necesitas IIS, sí o sí, haría esto otro:

  • Montar IIS en un puerto diferente del 80, y configurar Apache2 en el puerto 80.
  • Pasar todas las webs que funcionan con IIS (asp/aspx y similares) a ir con Reverse Proxy de Apache2.

Lamentablemente, aunque IIS sea más fácil de administrar, con Apache2 puedes hacer auténticas maravillas que con IIS estás limitado.

Edit 2: Con Apache y usando Let's Encrypt puedes gestionar todo muy fácilmente con el CertBot, pero solo para Linux/UNIX...

1 1 respuesta
E

#2 idem, es la mejor solución, un reverse proxy y a pastar.

Yo siempre he añadido el ssl en el primer servidor (en tu caso sería el iis), por aquello de no tocar nada del segundo servidor, pero no se si es la mejor de la soluciones

W0rd

Miraré a fondo el reverse proxy porque no había oído hablar de ello. Me gustaría tener todo en el mismo puerto, por no tener que meter el puerto en la url.

En este tema estoy bastante verde, como se redirecciona un solo servidor web, por ejemplo apache2/nginx/iis a varias maquinas virtuales??, a nivel de red me refiero.

Sobre el tema de iis tengo una de las aplicaciones del servidor esta en asp mvc, seguramente acabe migrando todo a linux y tirar para ese proyecto con una maquina virtual y a partir de ahora usar asp mvc core.

Aprovechando el hilo y desviándolo completamente, veis mejor usar docker o alguno parecido o tirar de maquinas virtuales?

Saludos y gracias por la ayuda.

1 respuesta
Traber

#4

Un reverse proxy en apache es, básicamente, una especie de máscara entre un hostname (nextcloud.dominio.com) y un servicio local, que te permite asociar un nombre de dominio a un servicio que tengas montado localmente en tu máquina o en otra máquina de la red, un puente de red vamos. Con eso puedes ponerle el hostname que quieras y aprovechar el certificado SSL para tener HTTPS en la aplicación que quieras.

Si quieres tener todo en el mismo puerto, cosa lógica y deseable, optaría por que fuese apache el que gestionara todo, dado que con apache y reverse proxy luego le puedes meter detrás todo lo que quieras que esté funcionando en la máquina, independientemente del puerto o el lenguaje con que esté hecho. Yo he montado instalaciones con Youtrack (Tomcat, Java), Webmin (Perl) y un Gitlab (Ruby/Go) sobre el mismo servidor, montando cada uno su servicio en un puerto diferente, y de cara al usuario está todo en el puerto 80/443 en un subdominio y con su correspondiente certificado HTTPS.

Sobre la redirección que hace apache con el reverse proxy, yo siempre los he montado para servicios locales, en máquinas virtuales o externas no he probado nunca, sería cuestión de trastear :P.

En cuanto a "virtualizar" y docker, mirate un poco lo que es "chroot" en linux, porque es básicamente lo que hace docker, dockear una aplicación y virtualizarla no es lo mismo XD. No podrías montar con docker un Windows en Linux, por ejemplo.

1 respuesta
W0rd

#5 Iré haciendo pruebas con el reverse proxy y ya diré que tal :) , sobre el tema de docker, veo que es igual que crouton, el chroot del sistema capado de chromebooks para tener linux.

Gracias por la ayuda ;)

Usuarios habituales

  • W0rd
  • Traber
  • elraro