HTTPS via Proxy ; Discourse tente toujours de récupérer des fichiers en HTTP

Salut ! Je viens de configurer mon forum Discourse. Lorsque j’ai cliqué sur le lien dans l’e-mail, j’ai vu un bouton, mais je n’ai pas pu le cliquer. J’ai remarqué plusieurs erreurs qui semblent provenir du fait qu’il essaie de charger des fichiers via HTTP. Cela pourrait être dû au fait que je n’utilise pas HTTPS via Discourse, mais plutôt via mon serveur Web Apache2 avec ProxyPass. Comment puis-je faire en sorte qu’il demande les fichiers via HTTPS sans utiliser HTTPS de Discourse ? (Ou indiquez-moi un moyen d’utiliser mes fichiers .crt et .key déjà facilement disponibles avec Discourse, ce qui fonctionnerait tout aussi bien :wink:)

Avez-vous activé le forçage HTTPS dans Discourse ?

Comment ferais-je cela ? (sans utiliser LetsEncrypt ou SSL via Discourse)
Devrais-je simplement décommenter templates/web.ssl.template.yml et laisser templates/web.letsencrypt.ssl.template.yml commenté ? (Désolé de poser la question, mais la reconstruction prend tellement de temps que je préfère m’assurer de la bonne marche à suivre)

Il vous suffit de vous rendre dans les paramètres et de cocher la case indiquant « force https ».

Pour être clair, assurez-vous à 100 % que votre proxy inverse peut gérer SSL pour Discourse avant d’activer ce paramètre.

:warning: Discourse ne fonctionne pas bien avec Apache2 … Si possible, passez à Nginx.

Attends, quels paramètres ? Où diable pourrais-je trouver une case à cocher ?

community.example.net/admin est le chemin où vous trouverez votre panneau d’administration Discourse.

Mais pour cela, j’ai besoin d’un compte sur mon forum, que je ne peux pas créer sans résoudre le problème HTTPS.

Vous pouvez activer le SSL forcé via la console :

./launcher enter app
rails c
SiteSetting.force_https = true
exit
exit

Dois-je reconstruire ou faire quelque chose après cela ?
Édité : J’ai reconstruit. J’obtiens toujours la même erreur indiquant que certains fichiers sont toujours chargés via HTTP.

force_https a été supprimé de l’interface d’administration car il causait plus de confusion que de bien.

Puisque Discourse installe désormais HTTPS par défaut, il n’est nécessaire de l’activer manuellement que dans des cas comme celui-ci.

Ce n’était pas activé par défaut pour moi. J’avais du mal à utiliser le script d’installation, alors j’ai modifié app.yml. Est-ce la raison ?

Effectuez-vous du HTTP derrière le proxy en désactivant le modèle pour HTTPS ?

Les deux modèles HTTPS étaient désactivés par défaut pour moi.
Discourse tourne sur les deux ports par défaut du Serveur 2.
J’utilise ensuite un ProxyPass dans un VHost apache2 (tournant sur le Serveur 1) où SSL est configuré.
Je viens de remarquer que je peux simplement activer HTTPS via Discourse et, comme Discourse tourne sur les ports par défaut, je peux simplement mettre community.website.tld sur l’adresse IP du Serveur 2.
Comment procéder pour activer SSL ? Décommenter les deux modèles et ensuite saisir l’e-mail de LetsEncrypt ? Aussi, comment créer un compte sur LetsEncrypt ? Je ne trouve aucun bouton « S’inscrire » sur leur site web.

C’est à peu près ça : activez le modèle pour HTTPS et Let’s Encrypt, assurez-vous que le port 443 est exposé et spécifiez une adresse e-mail avant de reconstruire.

Il y a très peu de bonnes raisons de placer Discourse derrière un proxy. S’il dispose d’un serveur dédié et d’un nom de domaine complet (FQDN), sa gestion sera beaucoup plus simple avec la configuration ci-dessus.

Mais quelle adresse e-mail dois-je indiquer là-bas ? Il est mentionné un compte Let’s Encrypt, donc dois-je en créer un ? Où ?

Juste une adresse e-mail pour recevoir des notifications. Vous n’avez pas besoin de l’enregistrer au préalable.

Je viens d’activer SSL et tout le reste, mais maintenant j’obtiens une erreur Cloudflare 502.

Assurez-vous que le proxy configure correctement l’en-tête X-Forwarded-Proto sur https, ce qui devrait résoudre la détection du HTTPS.

Désactivez Cloudflare pour le moment. Sauf si vous êtes fréquemment attaqué, il cause plus de tort que de bien.

Si le nuage orange est activé, Discourse ne peut pas obtenir le certificat de Let’s Encrypt.

Fait. HTTPS fonctionne maintenant, tout se charge en HTTPS, MAIS:
Je ne peux toujours pas cliquer sur le bouton de la page de vérification du compte.


Il y a une erreur et quelques avertissements dans la console également: