Не удается получить доступ к сайту после установки Let's Encrypt

Только что установил Let’s Encrypt на Discourse, и теперь сайт не открывается. Есть какие-то идеи, что я мог сделать не так?
Я раскомментировал строки для установки Let’s Encrypt и пересобрал приложение.
Теперь получаю сообщение «Safari не может подключиться …»
Не упустил ли я что-то?

Вы тоже раскомментировали порт 443 в секции expose?

Если перед этой строкой стоит #, вы можете удалить его и пересобрать.

Как и когда вы установили Discourse? Let’s Encrypt уже довольно давно является настройкой по умолчанию.

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

Да, сделал это. Я работаю на экземпляре EC2, поэтому задаюсь вопросом, не настроен ли где-то ещё редирект. @pfaffman, это уже было настроено без SSL, но я пытаюсь протестировать это с Auth0, поэтому мне нужно, чтобы на сайте работал HTTPS.

Возможно, вам потребуется проверить настройки безопасности, чтобы убедиться, что порт 443 открыт.

Если вы запустите discourse-setup, он выполнит проверку доступности самого себя через имя хоста на обоих портах.

Только что попробовал, и система сообщает, что не может подключиться к установке ни через один из портов.
Проверил настройки безопасности на экземпляре — порты открыты для моего IP-адреса.

Для работы Let’s Encrypt также необходимо разрешить доступ к вашему экземпляру с их серверов. Лучше всего открыть порты 80 и 443 для диапазона 0.0.0.0/0, то есть для всех адресов, в группах безопасности AWS.

О, привет, Клемент! Я только что заметил, что это ты!

Согласно письму от прошлого ноября, у вас стоит балансировщик нагрузки перед Discourse, поэтому вам нужно настроить балансировщик для обработки HTTPS. Это объясняет, почему Let’s Encrypt не был активирован для вашего экземпляра. Вам следует удалить сертификат Let’s Encrypt (и не помешает закрыть порт 443, хотя это не так важно). А затем разобраться, как заставить ваш балансировщик нагрузки AWS работать с HTTPS.

Это также объясняет, почему порты не открыты, так как балансировщик нагрузки находится на пути.

Спасибо, Джей. Я проверю, но, кажется, я не ставил dev-версию за балансировщик нагрузки. Перепроверю на всякий случай.

Хм. Я бы подумал, что у вас должно быть что-то из этого, но это объясняет, что происходит.

Нет. Нет балансировщика нагрузки. Он указывает на IP-адрес экземпляра.
Придётся попробовать что-то другое.

Если это тестовый экземпляр разработчика, переименуйте app.yml во что-то другое и снова запустите discourse-setup. Если тест не проходит, значит либо DNS не работает, либо порты заблокированы (не запущено ли что-то другое?).

Я вижу страницу «Добро пожаловать в nginx», когда использую HTTP, так что, возможно, я последовал неверным инструкциям при настройке Let’s Encrypt :man_facepalming:t6:

Скорее всего, у вас запущен внешний nginx.

Удалите или отключите внешний nginx.

Не следуйте этим инструкциям — просто переименуйте ваш старый файл app.yml и запустите discourse-setup. Он сделает всё за вас.

Только что попробовал, но не сработало. Сначала в логах упоминались проблемы с брандмауэром, затем появилось сообщение «error creating new order too many failed authorisations». Поэтому я закомментировал строки Lets Encrypt, настроил балансировщик нагрузки с сертификатом Amazon, и теперь получаю ошибки «bad gateway».

Да. Если вы будете пересобирать слишком часто, вы упрётесь в ограничение частоты запросов с их стороны. Настройка за балансировщиком нагрузки выходит за рамки той помощи, которую можно получить здесь.

Самое простое решение в данном случае — выбрать другое имя хоста, указать его на EC2 (или новый экземпляр) и попробовать снова. Другой вариант — подождать неделю и повторить попытку.

Хорошо, я подожду. Это перенесётся в конец моего списка задач.
Спасибо за помощь

Если бы это зависело от меня, я бы прямо сейчас отключил балансировщик нагрузки и ещё раз перепроверил, что порты открыты сегодня, потому что я точно не вспомню об этом через неделю. :slight_smile: