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

Я столкнулся с точно таким же запросом от Chrome.

В моём случае несколько параметров были настроены неверно: некоторые в настройках 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.

Если у вас часто не удаётся восстановить функциональный сервер Discourse, как это было у меня, возможно, вы одновременно запросили слишком много учётных данных Let’s Encrypt и превысили их лимит.

В этом случае выполнение ./launcher logs app выведет json. с ошибкой 429.

  1. Проверьте настройки Security group (группы безопасности) для вашего экземпляра сервера ECS

В моём случае Security group — это просто набор разрешённых портов (например, 80 HTTP, 443 HTTPS), которые позволяют управлять передачей данных вашего сервера во внешнее пространство.

Убедитесь, что разрешены порты, необходимые для хостинга Discourse.

  1. Проверьте настройки брандмауэра

В моём случае шаг 3 не открыл требуемые порты. Что-то пошло не так с настройками брандмауэра.

Странно, что я никогда не настраивал брандмауэр для своего сервера, но эти порты действительно открылись после выполнения:
apt install firewall-cmd
firewall-cmd --permanent --add-port=20-21/tcp (… и других портов)
firewall-cmd --reload

Проверьте статус открытых портов для вашего домена с помощью некоторых онлайн-сервисов.

У меня тоже была эта проблема — превышен лимит запросов на сертификаты.

Исправил, следуя вашему шагу №1 (закомментировав 2 SSL-шаблона в app.yml) и открыв сайт в другом браузере после пересборки.

Полагаю, смогу снова включить SSL, когда пройдет неделя.

Вам удалось подключиться через неделю?