Estoy intentando instalar Discourse desde la página oficial de GitHub, en Ubuntu 22.04 Server LTS, desde la última AMI de AWS. La red está configurada, con FQDNS adjuntos al host y IP elástica.
Todo se implementa correctamente y puedo conectarme a la instancia Nginx del puerto 80. Pero no puedo conectarme a través del puerto 443, y el error repetido en el error.log de Nginx es el siguiente:
> 2023/10/09 08:41:12 [emerg] 9342#9342: no se puede cargar el certificado "/shared/ssl/discourse.xxxx.com.cer": PEM_read_bio_X509_AUX() falló (SSL: error:0909006C:PEM routines:get_name:no start line:Esperando: CERTIFICADO DE CONFIANZA)
Una investigación adicional muestra que el archivo .cer tiene cero bytes de longitud, ubicado en
./shared/standalone/ssl/discourse.XXXX.com.cer
Contenedor del archivo de registro: app:$/var/log/nginx
¿Alguien se ha encontrado con este problema antes? No parece estar relacionado con los permisos, ya que todo se está ejecutando con credenciales de sudo.
EDITAR: Intenté eliminar las carpetas /shared/ssl y letsencrypt, y probé tanto una reconstrucción como una reinstalación, ambas con el mismo resultado.
¿Ejecutaste discourse-setup? Intenta conectarse a sí mismo para verificar que el DNS apunta al servidor y que los puertos están abiertos, pero es una prueba rudimentaria.
Si ejecutas una reconstrucción más de unas cuantas veces sin configurar correctamente el DNS y los puertos, alcanzarás los límites de tasa de Let’s Encrypt. Si ese es el caso, y sospecho que lo es, tendrás que esperar una semana o usar un subdominio diferente (o seguir algunas instrucciones complicadas para solicitar un certificado para el subdominio que deseas y otro).
Creo que si ejecutas docker logs app, podrías ver dónde acme está fallando al obtener un certificado.
Hola Jason:
Me encontré con el mismo problema y me tomó días y muchas horas descifrar qué estaba mal y cómo solucionarlo. Espero que esta información te sea útil a ti y a otros que encuentren el mismo problema.
Estaba recibiendo este error durante la ejecución de ./discourse-setup:
** FALLÓ EL ARRANQUE ** por favor desplázate hacia arriba y busca errores anteriores
En muchos intentos de solucionar este error, probé esto:
Ejecuté ./discourse-doctor sin éxito.
Ejecuté ./launcher rebuild app sin éxito.
Intenté solucionar problemas dentro del contenedor usando: docker exec -it app /bin/bash
La imagen del contenedor tiene herramientas limitadas para solucionar problemas, así que solo leí los registros usando este comando: less /var/log/nginx/error.log
Fue aquí donde vi muchos mensajes que contenían: [emerg] 2832#2832: no se puede cargar el certificado
Por alguna razón, no pude encontrar la causa principal, pero cuando salí del contenedor y escribí: ./launcher logs app desde el host,
pude ver más datos y de repente encontré este error: “Error al crear nuevo pedido :: ya se emitieron demasiados certificados (5) para este conjunto exacto de dominios en las últimas 168 horas, reintente después de 2024-08-10T12:58:12Z:”
Busqué en Google soluciones alternativas para este problema, pero luego decidí simplemente esperar el tiempo especificado.
Una vez transcurrido el tiempo de espera, volví a intentar: ./launcher rebuild app
Esta vez funcionó y los certificados SSL (*.cer) se crearon con éxito y mi sitio estaba en línea.
La moraleja de la historia aquí es que si obtienes un certificado *.cer vacío, debes revisar los registros del contenedor usando este comando desde el host: root@host:/var/discourse# ./launcher logs app
Desplázate por los registros y busca “demasiados certificados”
Si hubiera sabido esto, me habría ahorrado días de investigación
Suposiciones hechas en mi respuesta:
Has confirmado que tu host está configurado correctamente con tu proveedor de DNS.
Has confirmado tu correo electrónico de registro y la configuración SMTP.
Has confirmado que /var/discourse/containers/app.yml se completó correctamente.