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

لقد واجهت نفس المشكلة تمامًا من كروم.

في حالتي، كانت هناك عدة إعدادات تم ضبطها بشكل خاطئ؛ بعضها من إعدادات ديسكوس (Discourse)، وبعضها من إعدادات خادم الاستضافة. أدناه أشارك قائمة التحقق الخاصة بي كمرجع لكم:

  1. تحقق من ملف /var/discourse/containers/app.yml

(اتبع هذا المنشور: Allow SSL / HTTPS for your Discourse Docker setup )

تأكد إما من السماح بـ HTTPS/HTTP (افتح المنفذ 443، وأزل التعليق عن إعدادات قالب SSL ذات الصلة، وإعدادات Let’s Encrypt ذات الصلة)، أو السماح فقط بطلبات HTTP (أغلق المنفذ 443، وأضف تعليقًا على إعدادات قالب SSL ذات الصلة وإعدادات Let’s Encrypt ذات الصلة).

إذا تم إجراء أي تغييرات على app.yml، فقم بتشغيل ./launcher rebuild app لتفعيل الإعدادات المحدّثة.

  1. شغّل الأمر ./launcher logs app.

إذا فشلت بشكل متكرر في إعادة بناء خادم ديسكوس وظيفي، كما حدث معي، فقد تكون في نفس الوقت قد طلبت الكثير من بيانات اعتماد Let’s Encrypt وتجاوزت حدّهم.

عندها سيُظهر الأمر ./launcher logs app ملفًا بصيغة json يتضمن خطأ 429.

  1. تحقق من إعدادات مجموعة الأمان (Security group) الخاصة بمثال خادم ECS الخاص بك.

في حالتي، تُعدّ مجموعة الأمان ببساطة مجموعة من المنافذ المسموح بها (على سبيل المثال، 80 HTTP و 443 HTTPS)، والتي تتيح لك التحكم في اتصال خادمك مع العالم الخارجي.

تأكد من السماح بالمنافذ الضرورية لاستضافة ديسكوس.

  1. تحقق من إعدادات جدار الحماية.

في حالتي، لم يفتح الإجراء 3 المنافذ المطلوبة بالنسبة لي. حدث شيء خاطئ مع إعدادات جدار الحماية الخاصة بي.

من الغريب أنني لم أقم أبدًا بإعداد جدار الحماية لخادمي، ولكن تلك المنافذ كانت مفتوحة بالفعل بعد التكوين باستخدام:
apt install firewall-cmd
firewall-cmd --permanent --add-port=20-21/tcp (… والمنافذ الأخرى)
firewall-cmd --reload

يمكنك التحقق من حالة المنافذ المفتوحة لنطاقك باستخدام بعض الخدمات عبر الإنترنت.

واجهت هذه المشكلة أيضًا - تجاوزت حد المعدل لشهادات التشفير.

تم الحل باتباع الخطوة رقم 1 من إجرائك (إلغاء التعليق عن قالبَي SSL في app.yml) وفتح الموقع في متصفح آخر بعد إعادة البناء.

أتوقع أن أتمكن من إعادة تفعيل SSL بعد مرور أسبوع.

هل تمكنت من الاتصال بعد مرور أسبوع؟