Самопроверка выполняется до выпуска сертификата.
А что насчет iptables?
Вот пример из руководства по пробной установке Oracle: https://meta.discourse.org/t/install-discourse-on-oracle-cloud-free-tier/215749#configure-ubuntus-firewall-iptables-11
Вы можете проверить эти логи:
/var/log/nginx/error.log
/var/log/apache2/error.log
/var/log/nginx/access.log
/var/log/apache2/access.log
/var/log/syslog
/var/log/dmesg
А также логи Discourse через команду docker logs ваш-контейнер (или) ваш файл логов, если вы размещаете сервис без Docker.
Здесь может быть слишком много возможных проблем:
- Проблемы с DNS или SSL (более распространены).
- Ошибки в настройке брандмауэра, маршрутизации или сети.
- Проблемы с базой данных, кэшированием или службами Discourse.
Без логов или дополнительной информации практически невозможно дать более конкретные рекомендации.
Следующий шаг прост: сохраните файл сертификата как ssl.crt, а ключ по категории — как ssl.key, и перетащите их в каталог сервера /var/discourse/shared/standalone/ssl/ssl.crt и /var/discourse/shared/standalone/ssl/ssl.key
Я видел пример, который вы мне привели. Я выполнил все шаги.
Единственное отличие в том, что при запуске команды netfilter-persistent save ничего не выводится, в то время как в примере видно сообщение run-parts: ....

Я попытался установить Discourse заново с самого начала и выполнил эти две команды iptables перед этим:
iptables -I INPUT 5 -i ens3 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -I INPUT 5 -i ens3 -p tcp --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT
Я получил следующую проблему:
Порты 80 и 443 свободны для использования.
‘samples/standalone.yml’ → ‘containers/app.yml’
Обнаружено 2 ГБ памяти и 1 физическое ядро процессора.
Установлено db_shared_buffers = 256MB.
Установлено UNICORN_WORKERS = 4.
Параметры памяти в containers/app.yml обновлены.
Имя хоста для вашего Discourse? [discourse.example.com]: mywebsite.fr
Проверка вашего доменного имени . . .
ПРЕДУПРЕЖДЕНИЕ: Порт 443 компьютера, по-видимому, недоступен с использованием имени хоста: mywebsite.fr.
ПРЕДУПРЕЖДЕНИЕ: Подключение к http://mywebsite.fr (порт 80) также не удаётся.
Это означает, что mywebsite.fr разрешается в какой-то IP-адрес, который не ведёт к этой машине, на которой вы устанавливаете Discourse.
Первое, что нужно сделать, — убедиться, что mywebsite.fr разрешается в IP-адрес этого сервера. Обычно это делается там же, где вы покупали домен.
Если вы уверены, что IP-адрес разрешается корректно, проблема может быть в брандмауэре. Поиск в интернете по запросу «открыть порты ВАШЕ ОБЛАЧНОЕ ХОЗЯЙСТВО» может помочь.
Этот инструмент предназначен только для самых стандартных установок. Если вы не сможете решить вышеуказанную проблему, вам потребуется самостоятельно отредактировать containers/app.yml, а затем ввести
Привет @satonotdead
Я проверил, у меня нет этих папок: /var/log/nginx /var/log/apache2
Не совсем понял @xiaokong23357.
Вы имеете в виду, что я могу настроить HTTP, раскомментировав строку HTTPS в файле app.yml, а затем выполнить этот шаг вручную:
сохранить файл сертификата как ssl.crt и ssl.key по соответствующим категориям, а затем перетащить их в каталог сервера /var/discourse/shared/standalone/ssl/ssl.crt и /var/discourse/shared/standalone/ssl/ssl.key?
Здравствуйте,
Я вручную изменил файл app.yml. Теперь в браузере отображается следующее сообщение:
Добро пожаловать в nginx!
Если вы видите эту страницу, значит веб-сервер nginx успешно установлен и работает. Требуется дальнейшая настройка.
Для получения онлайн-документации и поддержки обратитесь к nginx.org.
Коммерческая поддержка доступна на сайте nginx.com.
Спасибо, что выбрали nginx.
Кажется, что SSL-сертификат установлен, поскольку:
/var/discourse/shared/standalone/ssl# ls -l
всего 8
-rw-r–r-- 1 root root 0 3 мар 01:00 mydomain.fr.cer
-rw------- 1 root root 3243 3 мар 01:00 mydomain.fr.key
-rw-r–r-- 1 root root 0 3 мар 01:01 mydomain.fr_ecc.cer
-rw------- 1 root root 227 3 мар 01:01 mydomain.fr_ecc.key
Что мне теперь делать? Как выполнить необходимую настройку?
На самом деле, когда вы добавляете элемент шаблона “templates/web.ssl.template.yml” в файл app.yml, ваш веб-сайт уже начинает использовать HTTPS-соединение, и я выше указал на необходимость настройки метода конфигурации SSL-сертификата.
Кроме того, nginx обычно используется при размещении нескольких веб-сайтов на вашем сервере, и вы можете проигнорировать его, если запускаете только Discourse.
Ничего страшного, так как вы запускаете один экземпляр, но я просто спрашиваю, потому что это стоит проверить.
Вы почти закончили, осталось только проверить шаг создания SSL-сертификатов, как сказала Snow Love.
Подозреваю, что вы упустили некоторые пункты в руководстве. Дружеский совет: лучше потратить время на чтение документации и руководств (в конечном счёте, это сэкономит ваше время).
Удачи ![]()
@xiaokong23357 Я использую только Discourse. Как это можно игнорировать?
Привет @satonotdead
Извините, о каких именно руководствах вы говорите?
Я следовал этой документации: discourse/INSTALL-cloud.md at main · discourse/discourse · GitHub
Как мне это сделать: нужно проверить этап создания SSL-сертификатов, как сказала Snow Love.
Я нашёл следующее в /var/discourse/shared/standalone/ssl# ls -l:
total 8
-rw-r–r-- 1 root root 0 Mar 3 01:00 mydomain.fr.cer
-rw------- 1 root root 3243 Mar 3 01:00 mydomain.fr.key
-rw-r–r-- 1 root root 0 Mar 3 01:01 mydomain.fr_ecc.cer
-rw------- 1 root root 227 Mar 3 01:01 mydomain.fr_ecc.key
Посмотри на себя, я здесь не использую nginx для развёртывания
Если вам нужно использовать nginx, укажите «-80:80» в параметре expose
#http «Измените на» — «9090:80» # http» гарантирует, что nginx может быть проксирован на Discourse
Я не понимаю, почему у меня возникла эта проблема с nginx. Я никогда не запрашивал его использование.
Вы имеете в виду, что мне нужно изменить файл app.yml следующим образом:
expose:
- “9090:80” # http — обеспечивает проксирование nginx к Discourse
- “443:443” # https
Да, для использования nginx необходимо изменить порт HTTP-прокси. Если вы не используете nginx, измените HTTP-порт с 9090 на 80.
@Titi, какой результат выполнения этой команды?
apt list | grep nginx.
Исходя из того, что вы увидели стандартную страницу по умолчанию nginx, я предполагаю, что на вашем VPS действительно установлен nginx, и именно он вызывает вашу проблему.
Discourse также использует nginx internally, но для того чтобы внутренний nginx показал эту страницу, установка должна быть крайне неисправной.
Более простая задача — выполнить systemctl status nginx. Если статус активен, остановите его командой systemctl stop nginx, а чтобы убедиться, что он останется в таком состоянии, выполните systemctl disable nginx.
После этого дважды проверьте, что в файле app.yml по-прежнему открыты порты 80:80 и 443:443. Вот и всё.
