No se puede conectar a la instalación de Discourse

Intentando instalar Discourse desde cero en un servidor OVH bare metal con Fedora Server 38 y la instalación fue bien, pero no puedo conectarme a él usando el nombre de host que especifiqué en app.yml, forums.dogsrv.dev.
El firewall de borde de OVH está deshabilitado, firewalld está deshabilitado, iptables está deshabilitado, DNS resuelve bien, estoy perdido en qué más comprobar en este punto, cualquier idea sería apreciada.

Puedes mirar en /var/discourse/shared/standalone/log/var-log/nginx/production.log. Supongo que te limitaron la tasa de let’s encrypt porque el DNS o algo más impidió que se emitiera un certificado.

Si ese es el caso, puedes esperar una semana o usar un subdominio diferente (como forum en lugar de forums).

¿Ejecutaste discourse-setup?

1 me gusta

Curiosamente, no tengo un production.log en esa carpeta, sin embargo, sí tengo un error.log que no contiene nada más que este error una y otra vez

2023/06/02 07:27:34 [emerg] 289163#289163: cannot load certificate "/shared/ssl/forums.dogsrv.dev.cer": PEM_read_bio_X509_AUX() failed (SSL: error:0909006C:PEM routines:get_name:no start line:Expecting: TRUSTED CERTIFICATE)

y, de hecho, cuando miré ese archivo de certificado, estaba vacío.

Ejecuté discourse-setup inicialmente, pero siempre fallaba con

Hostname for your Discourse? [forums.dogsrv.dev]:

Checking your domain name . . .
WARNING: Port 443 of computer does not appear to be accessible using hostname:  forums.dogsrv.dev.
WARNING: Connection to http://forums.dogsrv.dev (port 80) also fails.

Lo que supuse que se debía a que el TLD .dev está en la lista de precarga HSTS de Google por defecto, así que simplemente configuré el app.yml manualmente y ejecuté ./launcher rebuild app, lo que pareció funcionar bien.

He intentado cambiar el subdominio a forum y reconstruí la aplicación, pero sigo teniendo el mismo problema y recibiendo el mismo error de antes, excepto con forum en lugar de forums.

¿Ha abierto puertos en su firewall fuera de Docker?

Sí, firewalld está deshabilitado por completo junto con iptables. Si instalo y configuro manualmente Apache o Nginx en el propio servidor, puedo ver que en los puertos 80 y 443 se permite el tráfico, pero debido a HSTS, necesito tener la reescritura HTTPS habilitada en todas las solicitudes HTTP y un certificado SSL que funcione, que es lo que está causando problemas en este momento.

¿Quizás deberías abrir los puertos 80 y 443 entonces?

1 me gusta

Todavía suena como si algo estuviera interfiriendo con el tráfico entrante. ¿Estás usando Cloudflare para DNS?

No, estoy usando Google.

Si la prueba que está realizando Discourse-setup falla, deberá encontrar la explicación. Está bastante claro que tiene razón y que Let’s Encrypt no puede asignar un certificado.

Dado que sabe cómo instalar nginx y apache, puede intentar que Let’s Encrypt emita un certificado, pero está bastante claro que está bloqueando el puerto 80 y/o 443.

1 me gusta

Ok, el problema era que discourse-setup está roto cuando se usan versiones más nuevas de netcat, como se puede ver en esta pull request: https://github.com/discourse/discourse_docker/pull/697
Eliminar la bandera -p soluciona que discourse-setup informe falsamente que no puede establecer una conexión en los puertos, y luego termina y reconstruye la aplicación con éxito, y ahora puedo conectarme a mi instalación sin problemas.
Gracias por la ayuda.

1 me gusta

¡Me alegra que lo hayas hecho funcionar! Estoy confundido sobre por qué la reconstrucción no pudo obtener el certificado, ya que pensé que harías la reconstrucción y omitirías el paso de configuración de discourse.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.