He visto varios tutoriales que explican cómo hacer esto, pero de diferentes maneras, lo cual no me ayuda. ¿Existe alguna forma de crear una configuración de host virtual de Apache para Discourse, de modo que un dominio específico redirija al software, tal como se hace al agregar otros sitios web y sus respectivos dominios?
Si no estás familiarizado con esto (y no quieres familiarizarte), te recomiendo encarecidamente abandonar Apache y ejecutar solo Discourse en el VPS. Si necesitas ejecutar más cosas, consigue un VPS para lo de Apache y otro para Discourse.
Así que cambié a Nginx y todo está funcionando. Creo que SSL está configurado correctamente, pero en Chrome me muestra el mensaje “Tu conexión a este sitio no es totalmente segura”. La opción Forzar HTTPS está activada.
El SSL está configurado con el servicio nginx dentro del contenedor. Si el contenedor está expuesto a Internet y lo accedes directamente desde el navegador (instalación predeterminada de Discourse), tendrás SSL.
Sin embargo, si colocas un proxy inverso delante de él (ya sea Apache, Nginx o algún servicio de terceros, como Cloudflare), deberás asegurarte de que la conexión entre el navegador y el proxy inverso sea segura.
Por lo tanto, en tu caso, tendrás que generar certificados para el proxy inverso de nginx (no creo que necesites agregar las plantillas SSL de Discourse, ya que el contenedor no está expuesto directamente a Internet; puedes hacerlo, pero no es necesario).
Puedes consultar cómo hacerlo usando Let’s Encrypt (gratuito, el mismo que se usa en la instalación predeterminada de Discourse, pero en este caso para el nginx fuera del contenedor).
TL;DR: El nginx que actúa como proxy inverso necesita SSL. El nginx que está dentro del contenedor no necesita SSL (asumiendo que accedes desde la misma máquina).
(o puedes exponer otros puertos como 8080:80 y 8443:443, y en lugar de usar un socket en el siguiente paso, puedes redirigir a un upstream que apunte a localhost:80 y/o localhost:443)
Debes tener los archivos del certificado SSL en /var/discourse/shared/standalone/ssl/. ¿Los tienes? Asumo que ya eres propietario del dominio a1rp.xyz y que has leído cómo generar certificados SSL en el sitio de Let’s Encrypt. Ten en cuenta también que Discourse se encarga de renovar los certificados automáticamente en la instalación predeterminada, pero en tu caso deberás hacerlo tú mismo (por ejemplo, con un cronjob), de lo contrario tus certificados expirarán después de 3 meses.
Sí, tengo todo lo que mencionaste para hacer en la configuración de la aplicación (incluida la publicación sobre corregir algunas cosas). En cuanto a los dos puntos (:), no creo que marquen diferencia. Hubo una publicación que decía que tampoco debería haber dos puntos allí. Los archivos SSL también los tengo ya.
Así que solucioné el problema. Alguien mencionó que el favicon aparecía en HTTP, y por eso se producía el error. Subí otra cosa y la eliminé; ahora el sitio funciona completamente con HTTPS