Archivo .cer SSL de longitud cero

Hola,

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.

Realmente desconcertado con esto.

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 :frowning:

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.
1 me gusta