¡Hola! Acabo de intentar configurar mi foro de Discourse. Al hacer clic en el enlace del correo electrónico, vi un botón, pero no pude pulsarlo. Aparecieron bastantes errores, lo que parece deberse a que está intentando cargar archivos a través de HTTP. Esto podría ser porque no estoy usando HTTPS a través de Discourse, sino a través de mi servidor web apache2 con un ProxyPass. ¿Cómo puedo hacer que solicite los archivos a través de HTTPS sin usar el HTTPS de Discourse? (O dime una forma de usar mis archivos .crt y .key que ya tengo listos con Discourse, que funcione igual de bien
)
¿Habilitaste el forzamiento de HTTPS en Discourse?
¿Cómo lo haría? (sin usar LetsEncrypt ni SSL a través de Discourse)
¿Solo debo descomentar templates/web.ssl.template.yml y dejar templates/web.letsencrypt.ssl.template.yml comentado? (Perdón por preguntar, pero la reconstrucción tarda tanto que prefiero asegurarme)
Solo tienes que ir a la configuración y marcar la casilla que dice ‘forzar HTTPS’.
Para aclarar, asegúrate al 100% de que tu proxy inverso puede manejar SSL para Discourse antes de habilitar esa configuración.
Discourse no funciona bien con Apache2… Si es posible, cambia a Nginx.
Espera, ¿qué Configuración? ¿Dónde diablos encontraría una casilla de verificación?
community.example.net/admin es la ruta donde encontrarás el panel de administración de Discourse.
Pero para eso necesito primero una cuenta en mi foro, la cual no puedo crear sin solucionar el problema de HTTPS.
Puedes habilitar SSL forzado desde la consola:
./launcher enter app
rails c
SiteSetting.force_https = true
exit
exit
¿Tengo que reconstruir o hacer algo después de eso?
Edit: Ya he reconstruido. Todavía obtengo el mismo error de que algunos archivos siguen cargándose mediante HTTP.
force_https fue eliminado de la interfaz de administración porque causaba más confusión que otra cosa.
Dado que Discourse ahora instala HTTPS de forma predeterminada, solo en casos como este es necesario habilitarlo manualmente.
No estaba habilitado por defecto para mí. Tenía problemas al usar el script de instalación, así que edité el app.yml. ¿Es esta la razón?
¿Estás realizando HTTP detrás del proxy deshabilitando la plantilla para HTTPS?
Las dos plantillas HTTPS estaban desactivadas por defecto para mí.
Discourse se está ejecutando en los dos puertos predeterminados en el Servidor 2.
Luego estoy usando un ProxyPass en un VHost de apache2 (ejecutándose en el Servidor 1) donde SSL está configurado.
Acabo de notar que solo puedo habilitar HTTPS a través de Discourse y, como Discourse se está ejecutando en los puertos predeterminados, solo puedo colocar community.website.tld en la IP del Servidor 2.
¿Cómo procedería para habilitar SSL? ¿Descomentar las dos plantillas y luego ingresar el correo electrónico de LetsEncrypt? Además, ¿cómo creo una cuenta en LetsEncrypt? No puedo encontrar ningún botón “Registrarse” en su sitio web.
Básicamente eso: habilita la plantilla para HTTPS y Let’s Encrypt, asegúrate de que el puerto 443 esté expuesto y especifica un correo electrónico antes de reconstruir. Hay muy pocas razones buenas para colocar Discourse detrás de un proxy. Si tiene un servidor dedicado y un FQDN, será mucho más fácil de gestionar con lo anterior.
Pero, ¿qué correo electrónico debo especificar allí? Dice que es para una cuenta de Let’s Encrypt, ¿así que tengo que crear una? ¿Dónde?
Solo una dirección de correo electrónico para recibir notificaciones. No es necesario registrarla previamente.
Asegúrate de que el proxy establezca correctamente el encabezado X-Forwarded-Proto en https, lo que debería solucionar la detección de HTTPS.
Desactiva Cloudflare por ahora. A menos que sufras ataques con frecuencia, causa más daño que beneficio.
Si la nube naranja está habilitada, Discourse no puede obtener el certificado de Let’s Encrypt.



