После активации HTTPS Discourse не работает

Здравствуйте,

после активации шаблонов Let’s Encrypt и пересборки Discourse всё перестало работать:

NGINX выдаёт загадочную ошибку:

Странно то, что в каталоге /ETC нет папки nginx.

Активны следующие шаблоны:

Вот настройки, с которыми была выполнена пересборка приложения:

В чём может быть причина этих проблем?
Я полагаю, что сертификат должен быть выдан для хоста: discourse.itas-karlsruhe.de.

Я уже проверил с помощью launcher, действительно ли приложение запущено… Да, оно запущено…

И.

Похоже, вы находитесь в домашней директории (~), когда выполняете cd etc. Команда cd /etc/nginx должна сработать.

Нет, я проверил это в правильной директории:

Если у вас стандартная установка Docker, вам также нужно сначала войти в приложение.

cd /var/discourse
./launcher enter app

Если это сработает, вы можете вывести 46-ю строку файла конфигурации с помощью sed:

sed -n '46p' /etc/nginx/conf.d/discourse.conf

При использовании тех же шаблонов, что и у вас, и без каких-либо специфических изменений в этом файле конфигурации, я вижу следующее:

  return 301 https://discourse.softpress.com$request_uri;

Спасибо.
Я обнаружил следующее:

image

Как вы видите, поле «Discourse hostname» заполнено в app.yml:

Похоже, по какой-то причине не подставляется имя хоста, но я не уверен, почему это может происходить. Когда вы пересобирал Discourse, вы делали это, запустив эти команды?

cd /var/discourse
./launcher rebuild app

Единственное различие, которое я вижу между тем, что у вас, и тем, что у меня, — это использование дефиса в доменном имени, но я был бы очень удивлен, если бы это вызвало проблему.

Да, вот как я восстановил приложение…

После восстановления всё, похоже, работает:

Если вы многократно пересоздавали, то достигли лимитов Let’s Encrypt.

На сервере нет nginx, он находится внутри контейнера Discourse. Вот почему вы его не находите.

Значит, вы решили свою проблему, пересоздав?

Вам стоит отметить этот пост как решение.

Я просто хотел сказать, что в логе я не обнаружил ошибок или чего-то подобного. (См. скриншот)
Процесс сборки, КАЖЕТСЯ, в порядке…

Я сейчас запросил финальный домен. Я пересоберу приложение с его использованием.

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

Привет, Саймон,

Я снова пересобрал проект и заметил, что сертификат выпущен с неверным именем:

Возможно, app.yml настроен неправильно?

app.txt (4,1 КБ)

Что вы имеете в виду?

Я

строка 51

DISCOURSE_HOSTNAME: deinbalkonnetz.de

это не ваш файл конфигурации. Откуда вы его взяли?

???

Это именно мой файл конфигурации… Мы перенаправили этот домен на нашу виртуальную машину и пытаемся настроить Discourse на этом сервере…

Затем в конфигурации нужно изменить все вхождения deinbalkonnetz.de.

После этого необходимо пересобрать приложение.

Что вы имеете в виду под «везде»?
Имя хоста используется только на строке 51 …

Я не знаю других файлов конфигурации, кроме app.yml …

Возможно, это поможет?

Спасибо, Jammy,

это важные моменты, без вопросов.

Проблема в том, что мой hostname вообще не используется:
DISCOURSE_HOSTNAME: ‘deinbalkonnetz.de

Думаю, в сертификате должно использоваться реальное имя хоста “deinbalkonnetz.de”, а не имя переменной.

Можете добавить http://deinbalkonnetz.de/ как второй домен в сертификат Let’s Encrypt в качестве возможного обходного пути?