J’ai vu plusieurs tutoriels expliquant comment faire cela, mais chacun à sa manière, ce qui ne m’aide pas. Existe-t-il un moyen de configurer un hôte virtuel Apache pour Discourse afin qu’un domaine spécifique redirige vers le logiciel, tout comme pour l’ajout d’autres sites web et de leurs domaines respectifs ?
Mais avec cela, il semble que je doive utiliser Nginx à cause des fichiers de configuration. Ma question est donc : puis-je faire la même chose avec Apache ?
Si vous n’êtes pas familier avec cela (et que vous ne souhaitez pas le devenir), je recommande vivement d’abandonner Apache et de n’exécuter que Discourse sur le VPS. Si vous devez exécuter d’autres services, utilisez un VPS pour Apache et un autre pour Discourse.
Donc, j’ai basculé vers Nginx et tout fonctionne. Je pense que SSL est correctement configuré, mais sur Chrome, j’obtiens le message « Votre connexion à ce site n’est pas entièrement sécurisée ». L’option Force HTTPS est activée.
Le SSL est configuré avec le service nginx à l’intérieur du conteneur. Si le conteneur est exposé à Internet et que vous y accédez directement depuis un navigateur (installation Discourse par défaut), vous disposerez de SSL.
Cependant, si vous placez un proxy inverse devant celui-ci (qu’il s’agisse d’Apache, de Nginx ou d’un service tiers comme Cloudflare), vous devrez vous assurer que la connexion entre le navigateur et le proxy inverse est sécurisée.
Dans votre cas, vous devrez donc générer des certificats pour le proxy inverse nginx (je ne pense pas que vous ayez besoin d’ajouter les modèles SSL de Discourse, car le conteneur n’est pas exposé directement à Internet ; vous le pouvez, mais ce n’est pas nécessaire).
Vous pouvez consulter la documentation pour savoir comment procéder avec Let’s Encrypt (gratuit, le même que celui utilisé dans l’installation par défaut de Discourse, mais dans ce cas pour le nginx situé à l’extérieur du conteneur).
TL;DR Le nginx qui agit en tant que proxy inverse a besoin de SSL. Le nginx situé à l’intérieur du conteneur n’en a pas besoin (en supposant que vous y accédiez depuis la même machine).
(ou vous pouvez exposer d’autres ports comme 8080:80 et 8443:443 et, au lieu d’utiliser un socket à l’étape suivante, rediriger vers un upstream pointant vers localhost:80 et/ou localhost:443)
Vous devez avoir les fichiers de certificat SSL dans /var/discourse/shared/standalone/ssl/. Les avez-vous ? Je suppose que vous possédez déjà le domaine a1rp.xyz et que vous avez lu comment générer des certificats SSL sur le site de Let’s Encrypt. Gardez également à l’esprit que Discourse gère le renouvellement des certificats pour vous dans l’installation par défaut, mais dans votre cas, vous devrez le gérer vous-même (avec un cronjob, par exemple), sinon vos certificats expireront après 3 mois.
Oui, j’ai tout ce que vous avez dit à faire dans la configuration de l’application (y compris le post après avoir corrigé certaines choses). En ce qui concerne le :, je ne pense pas que cela fasse une différence. Il y avait aussi un post indiquant qu’il ne devrait pas y avoir de : là. Les fichiers SSL, je les ai déjà.
J’ai donc résolu le problème. Quelqu’un a mentionné que la favicon s’affichait en http, ce qui a provoqué l’erreur. J’ai téléchargé autre chose puis supprimé le fichier, et maintenant le site est entièrement en https