Versión de Discourse en forum.abc.com.au: NO ENCONTRADA

Discourse instalado según la guía oficial en GitHub.
Todo salió bien, pero al acceder al foro obtengo un error 502.

Intenté revisar los registros de producción de Rails y no pude ver nada relacionado con production_error ni los registros de Sidekiq.

Con tail vi lo siguiente:
Creating scope :open. Overwriting existing method Poll.open.
Creating scope :open. Overwriting existing method Poll.open.
Can’t reach ‘/images/welcome/discourse-edit-post-animated.gif’ to get its dimension.

Al ejecutar discourse doctor dice:

Discourse version at forum.abc.com.au: NOT FOUND

Intenté deshabilitar SSL y volver a construirlo; pude acceder al foro.

Debe haber un problema con SSL que no logro identificar. Durante la instalación de SSL, la resolución de la dirección IP al servidor fue exitosa.

Por favor, ayúdenme.

Parece que antes de habilitar HTTPS, enlazaste a imágenes no seguras.

@pfaffman Gracias por la respuesta.

Es una instalación nueva. No hay forma de que podamos vincular manualmente

Después de revisar todos los registros, pude confirmar que el error se debe a la emisión del certificado de Let’s Encrypt. Si alguien enfrenta un problema similar, su ayuda sería bienvenida.

Primero, vi este error en los registros de Nginx:

cannot load certificate "/shared/ssl/forum.abc.com.au.cer": PEM_read_bio_X509_AUX() failed (SSL: error:0906D06C:PEM routines:PEM_read_bio:no start line:Expecting: TRUSTED CERTIFICATE)

Luego, intenté verificar los registros de SSL:

forum.abc.com.au:Verify error:CAA record for forum.abc.com.au prevents issuance

Antes de ejecutar el script de instalación de Discourse para un subdominio, debemos verificar si el dominio principal tiene registros CAA y comprobar si la Autoridad Certificadora no es Let’s Encrypt (en mi caso, el registro CAA del dominio principal es comodoca.com). En tal situación, los certificados de Let’s Encrypt para Discourse no se emitirán.

Solución: Debes agregar un registro CAA para el subdominio de Discourse, como se indica aquí:
Acme:error:caa :: CAA record for ... prevents issuance - Help - Let's Encrypt Community Support

Elimina los archivos del certificado antiguo e intenta reconstruir nuevamente:

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

Si conoces una forma de probar esos registros que no requiera software adicional, consideraría que discourse-setup lo verifique, pero nunca había visto algo así.

¡Buen trabajo al resolver eso!

Es razonable asumir que, si posees un dominio y sabes qué es CAA y has podido configurarlo, entonces comprendes las implicaciones de Let’s Encrypt.

@pfaffman
Ejecutar caa {dominio.tld} devolverá el registro.
Primero queremos buscar si devuelve algún registro.
Luego, si lo devuelve, verificar si la autoridad emisora es distinta de letsencrypt.org.

Pero este es un caso muy raro. No estoy seguro de si queremos incluirlo.

@Stephen

Correcto. Si soy dueño de un dominio, sé qué hacer con él.
Estaba ayudando a alguien; este problema podría estar relacionado con proveedores de hosting que usan cPanel y ofrecen certificados SSL automáticos con otros proveedores, como Comodo. Estos añaden un montón de registros por defecto al crear un sitio (WordPress) en cPanel.

De todos modos, este es un caso muy raro; es la primera vez que veo algo así.

Vemos que CAA aparece aquí de vez en cuando; la respuesta predeterminada que recibimos cuando señalamos que han restringido la emisión de certificados para todo su dominio suele ser :man_facepalming:t2:

@Stephen

¡Esto es interesante! Necesito verificarlo, no sé si podemos bloquear la emisión de certificados en un dominio completo.
¿La emisión restringida de certificados para todo el dominio, es decir, para todos sus subdominios?

Si configuras un registro CAA para @ (el dominio), esto se aplica tanto al dominio de nivel superior como a los subdominios. Aún puedes agregar un registro CAA específico para subdominio.tudominio.com para un servicio como Let’s Encrypt, lo que restringirá el alcance para el cual LE puede emitir un certificado.

Así:

dominio.com.    CAA   0 issue "comodoca.com"
sub.dominio.com.    CAA   0  issue "letsencrypt.org"

También puedes especificar issuewild en lugar de issue para permitir que una CA emita un certificado comodín, y iodef para asociar una dirección de correo electrónico que será notificada en caso de violaciones de la política.

Mismo problema aquí. Los comandos no resolvieron el problema. He cambiado a DNS y proxy de Cloudflare. El problema persiste para mí.

Lo he hecho varias veces y no he experimentado esto. Pero definitivamente soy un usuario final feliz, no un programador, no un experto, no nada relacionado. Pero esto es frustrante.

Mi mejor suposición es que tenías Cloudflare configurado para proxy y reconstruiste suficientes veces para alcanzar los límites de velocidad de Let’s Encrypt y ahora tienes que esperar una semana para obtener un certificado.

La solución rápida y sencilla es elegir un nuevo subdominio, configurar Cloudflare solo DNS y reconstruir. Si eso funciona, entonces tengo razón sobre el límite de velocidad y puedes aprender a amar el nuevo subdominio o esperar una semana hasta que te permita intentarlo de nuevo.

Pregunta sincera: ¿la reconstrucción sigue solicitando un nuevo certificado cada vez?

Solo me preguntaba lo mismo, no estoy seguro de la solicitud, pero no parece emitirse ningún certificado nuevo si se encuentra uno válido (acabo de reconstruir un sandbox)

Sí, si no existe un certificado válido.