Я пытаюсь установить Discourse с официальной страницы GitHub на Ubuntu 22.04 Server LTS — используя последний образ AWS AMI. Сеть настроена, к хосту привязано полное доменное имя (FQDN) и эластичный IP-адрес.
Всё разворачивается корректно, и я могу подключиться к экземпляру nginx на порту 80. Однако подключение через порт 443 не работает, и в логе ошибок nginx повторяется следующая ошибка:
РЕДАКТИРОВАНО: Я попытался удалить папки /shared/ssl и letsencrypt, а также выполнить пересборку и переустановку, но результат в обоих случаях остался прежним.
Вы запускали discourse-setup? Он пытается подключиться к самому себе, чтобы проверить, что DNS указывает на сервер и порты открыты, но это довольно грубая проверка.
Если вы запускаете сборку более нескольких раз без правильной настройки DNS и портов, вы упрётесь в лимиты Let’s Encrypt. Если это так, а я так подозреваю, вам придётся ждать неделю или использовать другое поддоменное имя (либо следовать сложным инструкциям для запроса сертификата для нужного вам поддомена и ещё одного).
Я думаю, что если вы запустите docker logs app, то, возможно, увидите, где acme не удаётся получить сертификат.
Привет, Джейсон,
Я столкнулся с той же проблемой, и мне потребовались дни и множество часов, чтобы понять, что именно сломалось и как это исправить. Поэтому надеюсь, что эта информация поможет вам и другим, кто столкнулся с аналогичной проблемой.
При выполнении команды ./discourse-setup я получал следующую ошибку:
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error
В попытках исправить эту ошибку я пробовал следующее:
Я запускал ./discourse-doctor, но безрезультатно.
Я запускал ./launcher rebuild app, также безрезультатно.
Я пытался устранять неполадки внутри контейнера с помощью команды: docker exec -it app /bin/bash.
Так как образ контейнера содержит ограниченный набор инструментов для диагностики, я просто просматривал логи с помощью этой команды: less /var/log/nginx/error.log
Именно здесь я увидел множество сообщений, содержащих: [emerg] 2832#2832: cannot load certificate.
По какой-то причине мне не удалось найти корень проблемы, но когда я вышел из контейнера и ввел: ./launcher logs app с хоста —
я смог увидеть больше данных и внезапно обнаружил эту ошибку: “Error creating new order :: too many certificates (5) already issued for this exact set of domains in the last 168 hours , retry after 2024-08-10T12:58:12Z:”
Я искал в Google обходные пути для этой проблемы, но затем решил просто подождать указанное время.
После истечения времени ожидания я снова попробовал выполнить команду: ./launcher rebuild app
На этот раз всё сработало, SSL-сертификаты ( *.cer ) были успешно созданы, и мой сайт заработал.
Мораль этой истории такова: если вы получили пустой сертификат *.cer , вам необходимо проверить логи контейнера, выполнив эту команду с хоста: root@host:/var/discourse# ./launcher logs app
Прокрутите логи и поищите фразу “too many certificates”.
Если бы я знал это заранее, это сэкономило бы мне дни исследований
Предположения, сделанные в моем ответе:
Вы подтвердили, что ваш хост правильно настроен с вашим DNS-провайдером.
Вы подтвердили, что ваш регистрационный email и настройки SMTP настроены верно.
Вы подтвердили, что файл /var/discourse/containers/app.yml был правильно заполнен.