HTTPS: проблема при настройке SSL-сертификата

Привет!

Я пытался включить HTTPS для своего сайта, следуя этому отличному руководству. Всё шло хорошо, пока я не попытался пересобрать приложение, введя ./launcher rebuild app.

Я запустил discourse-doctor, чтобы попытаться разобраться в ситуации, и наконец нашёл причину:

==================== КОНЕЦ ЖУРНАЛА ПЕРЕСБОРКИ ====================
Не удалось пересобрать приложение.

Проверка вашего доменного имени . . .

Подключение к discourse.mydomain.com успешно.
Вам, вероятно, следует удалить любые нестандартные плагины и выполнить пересборку.
Попытка перезапуска существующего контейнера . . .

запуск существующего контейнера
+ /usr/bin/docker start app
Ошибка ответа от демона: сбой программирования внешней связности для конечной точки app (some_random_characters): Ошибка запуска прокси пользовательского пространства: listen tcp 0.0.0.0:443: bind: адрес уже используется
Ошибка: не удалось запустить контейнеры: app
Не удалось перезапустить контейнер.

Примечание: я заменил длинную цепочку символов на some_random_characters, а своё доменное имя — на discourse.mydomain.com.

Это довольно странно, так как я следовал руководству; я не знаю, как это исправить.

Любая помощь будет очень кстати!

Хорошего дня,

nekodroid

Для дальнейшего анализа необходимо предоставить ваш app.yml. Перед публикацией обязательно удалите из него любые конфиденциальные адреса электронной почты и пароли.

---
env:
  DISCOURSE_DEVELOPER_EMAILS: myemailadress@maildomain.com
  DISCOURSE_HOSTNAME: discourse.mydomain.com
  DISCOURSE_SMTP_ADDRESS: stmp.eu.mailgun.org
  DISCOURSE_SMTP_PASSWORD: smtppasswordwithoutquotes
  DISCOURSE_SMTP_PORT: 587
  DISCOURSE_SMTP_USER_NAME: postmaster@discourse.mydomain.com
  LANG: en_US.UTF-8
  LETSENCRYPT_ACCOUNT_EMAIL: myemailadress@maildomain.com
  UNICORN_WORKERS: 2
expose:
  - "80:80"
  - "443:443"
hooks:
  after_code:
    -
      exec:
        cd: $home/plugins
        cmd:
          - "git clone https://github.com/discourse/docker_manager.git"
params:
  db_default_text_search_config: pg_catalog.english
  db_shared_buffers: 128MB
run:
  -
    exec: "echo \"Начало пользовательских команд\""
  -
    exec: "echo \"Конец пользовательских команд\""
templates:
  - templates/postgres.template.yml
  - templates/redis.template.yml
  - templates/web.template.yml
  - templates/web.ratelimited.template.yml
  - templates/web.template.yml
  - templates/web.ssl.template.yml
  - templates/web.letsencrypt.ssl.template.yml
volumes:
  -
    volume:
      guest: /shared
      host: /var/discourse/shared/standalone
  -
    volume:
      guest: /var/log
      host: /var/discourse/shared/standalone/log/var-log

Вот оно ~

Вы читали эту часть?

Похоже, у вас проблема с установкой Docker.

И зачем вы полностью переписали порядок элементов в app.yml?

Я действительно прочитал это руководство, но на шаге с командой wget -qO- https://get.docker.com/ | sh возникла ошибка: по памяти, сообщалось о «неправильном использовании команды wget». Поэтому я перешёл к следующим шагам и помню, что Docker установился автоматически после ввода команды ./discourse-setup.

Скорее всего, это и есть моя проблема…

Я полностью переустановлю Discourse с самого начала, а затем обновлю эту тему.

Огромное спасибо за вашу помощь, друзья! :smiley_cat:

Да! Это было добавлено в какой-то момент. Не уверен, когда именно.

Рад, что вы уже в строю.

Спасибо :uwu:

Кстати, у меня теперь другая ошибка!

Я запустил программу автоматической настройки discourse-setup и указал адрес электронной почты для шифрования Let’s Encrypt при запросе. Теперь выводится следующее сообщение:

Проверка вашего доменного имени . . .
ПРЕДУПРЕЖДЕНИЕ:: Похоже, этот сервер недоступен по адресу discourse.apertureproject.me:443.

Подключение к http://discourse.apertureproject.me (порт 80) также не удаётся.

Судя по этому, ошибка вызвана закрытыми портами, и я совершенно не знаю, как это исправить. И я не запущу свой сайт без шифрования, поэтому я не буду отключать Let’s Encrypt.

РЕДАКТИРОВАНИЕ!

Я нашёл документацию моего хостинг-провайдера (OVH) о том, как открыть порты. Но мой менеджер IP-адресов пуст, хотя согласно скриншотам из документации он должен быть заполнен несколькими IP-адресами.

Извините, она на французском, но, как вы видите, список IP-адресов полностью пуст.

Тест может завершиться неудачей, даже если реальной проблемы нет, чтобы вы могли посмотреть, что произойдет.

Настроен ли DNS? Нет. discourse.apertureproject.me не разрешается. Необходимо настроить DNS, прежде чем вы сможете использовать https.

Какую операционную систему и платформу вы используете? (На некоторых порты отключены по умолчанию)

Если вы выполните команду nc в командной строке, получите ли вы сообщение “команда не найдена”?

Хорошо, как это сделать?

Я знаю, что речь идет о DNS-записях, но какой тип значения требуется и так далее?

Под значением я имею в виду A, AAAA, NS и т. д.

Потому что я уже добавил следующее в категорию DNS-серверов:

Огромное спасибо за вашу помощь ~ :smiley_cat:

Вам нужна A-запись, указывающая на IP-адрес вашего Droplet.

Я это уже сделал.

Ещё один вопрос: у меня возникла проблема, которой раньше не было — теперь при вводе apertureproject.me отображается страница приветствия nginx.

Ранее там было сообщение об успешной установке Discourse.

Открывается страница установки. Это нормально. Спешите установить его.

Тогда как мне его установить? Я не понимаю. У меня раньше не было этой страницы.

Извините, я немного новичок в этом… запутанно :tired_face:

Только следуйте инструкциям.

Вы имеете в виду инструкцию по установке на 30 минут? Я её уже выполнил.

Нет, вы уже это сделали. Сейчас вы находитесь на шаге регистрации администратора.

Ах… всё ещё не понимаю x’( Что мне посоветуете делать?

Что вы видите, когда просматриваете свой домен?

Добро пожаловать в nginx!

Если вы видите эту страницу, значит веб-сервер nginx успешно установлен и работает. Требуется дальнейшая настройка.

Для получения онлайн-документации и поддержки обратитесь на nginx.org.

Коммерческая поддержка доступна на сайте nginx.com.

Спасибо, что используете nginx.

Нет, я вижу страницу регистрации. Очистите кэш и историю браузера и попробуйте снова.