El sitio web de Discourse no carga después de la instalación sin habilitar Let's Encrypt

Sé lo suficiente como para ser peligroso al estar frente a una sesión SSH abierta. Atravesé la instalación sin problemas el otro día y funcionó.

Sin embargo, hoy tuve que reconstruir (he estado en un servidor de desarrollo, no en producción) y después de seguir los mismos pasos, no aparece nada al ejecutar ./discourse-setup y visitar el sitio web una vez completada la instalación.

También ejecuté ./launcher start app y aún así no hay nada.

¿Cuáles son algunas cosas típicas que debería hacer para solucionar problemas de la instalación?

¿No hay ningún mensaje ni error de ningún tipo después de ejecutar ./discourse-setup o ./launcher start app?

Cuéntanos cómo son diferentes los entornos.

¿Estás usando un proxy inverso? ¿CloudFlare?

¿Dónde estás alojando la instalación de producción?

No, la instalación parece haber sido exitosa. Cuando verifico docker info, veo que el contenedor también está en ejecución.

Estoy ejecutando Amazon Linux 2 en AWS y esto funcionó el otro día en el mismo sistema operativo. CloudFlare se utiliza solo para DNS en este dominio.

Aquí está el orden exacto de lo que hice. Git, docker y ncat se instalaron mediante amazon-linux-extras según se indicó durante la instalación (pero esto no debería ser un problema, ya que tenía un foro de desarrollo funcional el otro día).

  1. Instalar git
  2. Instalar y iniciar docker
  3. Instalar ncat
  4. Instalar Discourse
  5. Instalar nginx1.12

¿Por qué hiciste eso?

Buena pregunta. :joy: Lo hice porque no funcionaba después del paso 4… jaja. ¿Debería desinstalarlo?

Sí. Desinstala.

Probablemente sea un problema de DNS.

¿Qué devuelve curl localhost?

¿Qué muestra tail /var/discourse/shared/logs/var-log/nginx/access.log?

Discourse incluye un servidor web dentro del contenedor.

curl: (7) Error al conectar con localhost puerto 80: Conexión rechazada

tail: no se puede abrir ‘/var/discourse/shared/logs/var-log/nginx/access.log’ para lectura: No existe el archivo o el directorio

Ejecuté la instalación normal, pero confirmé que la carpeta shared ni siquiera existe.

¡Gracias por tu ayuda, por cierto! Como dije, sé lo suficiente para ser peligroso… y no siempre de una buena manera. :smiling_face_with_sunglasses:

Lo siento.

tail /var/discourse/shared/standalone/logs/var-log/nginx/access.log

O, si sigue siendo incorrecto,

find /var/discourse/shared -name access.log

para ver dónde se encuentra el archivo de registro.

Lo encontré aquí:

/var/discourse/shared/standalone/log/var-log/nginx/

No había un archivo access.log, pero sí había un error.log.

La misma línea aparecía una y otra vez (el dominio real se reemplazó con example.com aquí):

2020/04/08 19:46:34 [emerg] 2112#2112: cannot load certificate "/shared/ssl/example.com.cer": PEM_read_bio_X509_AUX() failed (SSL: error:0909006C:PEM routines:get_name:no start line:Expecting: TRUSTED CERTIFICATE)

No seguí el proceso de certificados con Let’s Encrypt porque ya tengo un certificado para este dominio. ¿Necesito hacer algo con Let’s Encrypt de todos modos?

Necesitas un certificado.

Puedes buscar y encontrar instrucciones para instalar tu propio certificado, las cuales dicen que es un gran problema, o puedes obtener uno gratis y sin complicaciones permitiendo que Let’s Encrypt lo obtenga por ti.

1 me gusta

Bueno, ¿lo ven? Funcionó.

Gracias a @pfaffman y a todos los demás que respondieron. :+1:

1 me gusta

En realidad, me retracto. Chrome cargó la ventana en un modo que mostraba la última carga de página exitosa, pero una actualización en modo incógnito confirma que aún no funciona. Un fracaso total por mi parte. :man_facepalming:

¿Hay algún enlace sobre cómo configurar el certificado de Let’s Encrypt? Necesito repasar lo que hice (o lo que no hice).

Simplemente ejecuta discourse-setup. Cuando te pregunte sobre Let’s Encrypt, proporciona cualquier dirección de correo electrónico o la tuya propia si deseas recibir un correo si consideran que necesitas renovar.

Ok, eso es lo que hice… Pensé que todo se basaba en la guía de instalación, pero aún así estoy obteniendo páginas en blanco.

Parece que Discourse está buscando el certificado en el directorio /shared/ssl/, pero la ubicación real de mi certificado es /shared/standalone/ssl/

Mi configuración de app.yml está establecida en:

   ## El contenedor Docker no tiene estado; todos los datos se almacenan en /shared
volumes:
  • volume:
    host: /var/discourse/shared/standalone
    guest: /shared
  • volume:
    host: /var/discourse/shared/standalone/log/var-log
    guest: /var/log

Puedes probar

cd /var/discourse
rm -r shared/standalone/ssl shared/standalone/letsencrypt
./launcher rebuild app

La línea rm es de memoria. Si esos archivos no existen, dime qué debería haber escrito.

2 Me gusta

Así que parece que me he topado con el límite de 10 certificados por semana de Let’s Encrypt. Supongo que eso explica parte de la razón por la que no puedo continuar más allá de este paso.

Esto es lo que encontré de otra persona que experimentó este problema después de varios reconstrucciones: Trouble with SSL after lots of rebuilds - #14 by pfaffman

Así que, supongo que por ahora no tengo otra opción que instalar mi propio certificado que ya poseo.

2 Me gusta