Unable To Connect/Connection Refused due to https certificates

We successfully installed Discourse through DigitalOcean using the following guide:

discourse/docs/INSTALL-cloud.md at main · discourse/discourse · GitHub

Our DNS is fully propagated, and we also installed our SSL CERTS per the following guide:

When browsing to our Discourse installation via IP or domain name, we get the following message:

This site can’t be reached

XX.XX.XX.XX refused to connect.
Try:
Checking the connection
Checking the proxy and the firewall
ERR_CONNECTION_REFUSED

What could be the problem?

Almost certainly a SSL problem. Try rebuilding with plain HTTP first to make sure everything is working before adding on the complexity of HTTPS.

Using let’s encrypt is an easy way to get ssl.

… thanks for your help.

I am running into this same issue, To rebuild with plain HTTP, does that require just commenting out the SSL template line in app.yml?

Yes, but browsers that have visited your site will refuse to connect. You really should use https.

For anyone that face it in the future, make sure to not exceed the rate limit of LetsEncrypt:

You can see if it was exceeded in the logs:

./launcher logs app

J’ai rencontré exactement le même problème avec Chrome.

Dans mon cas, plusieurs configurations étaient incorrectement définies : certaines concernaient les paramètres de Discourse, d’autres la configuration du serveur d’hébergement. Je partage ici ma liste de contrôle à titre de référence :

  1. Vérifiez /var/discourse/containers/app.yml

(Suivez ce sujet : Allow SSL / HTTPS for your Discourse Docker setup)

Assurez-vous d’autoriser soit HTTPS/HTTP (ouvrez le port 443, décommentez la configuration du modèle liée à SSL et les configurations liées à Let’s Encrypt), soit uniquement les requêtes HTTP (bloquez le port 443, commentez la configuration du modèle liée à SSL et les configurations liées à Let’s Encrypt).

Si des modifications ont été apportées à app.yml, exécutez ./launcher rebuild app pour activer les configurations mises à jour.

  1. Exécutez ./launcher logs app.

Si vous échouez fréquemment à reconstruire un serveur Discourse fonctionnel, comme c’était mon cas, il se peut que vous ayez demandé trop de credentials Let’s Encrypt en même temps et dépassé leur limite.

Dans ce cas, l’exécution de ./launcher logs app affichera un fichier json contenant une erreur 429.

  1. Vérifiez les paramètres de votre Security group pour l’instance de votre serveur ECS

Dans mon cas, le Security group est simplement un ensemble de ports autorisés (par exemple, 80 HTTP, 443 HTTPS), qui vous permettent de contrôler le trafic de votre serveur vers l’extérieur.

Assurez-vous d’autoriser les ports nécessaires à l’hébergement de Discourse.

  1. Vérifiez les paramètres du pare-feu

Dans mon cas, l’étape 3 n’a pas ouvert les ports requis. Quelque chose s’est mal passé avec mes paramètres de pare-feu.

C’est étrange, car je n’avais jamais configuré le pare-feu de mon serveur, mais ces ports ont effectivement été ouverts après avoir exécuté :
apt install firewall-cmd
firewall-cmd --permanent --add-port=20-21/tcp (… et les autres ports)
firewall-cmd --reload

Vous pouvez vérifier l’état des ports ouverts pour votre domaine en utilisant certains services en ligne.

J’ai eu le même problème : dépassement de la limite de taux pour les certificats.

Résolu en suivant votre étape n° 1 (en commentant les deux modèles SSL dans app.yml) et en ouvrant le site dans un autre navigateur une fois la reconstruction terminée.

Je suppose que je pourrai réactiver SSL une fois qu’une semaine se sera écoulée.

Avez-vous pu vous connecter après une semaine ?