(SSL: ошибка:02001002:библиотека системы:fopen:Нет такого файла или каталога:fopen('/var/dis (…)
Я следую руководству, но не могу найти никакой информации об этой ошибке
Привет @slivo
Давайте посмотрим на вывод этой команды:
cd /var/discourse/shared/standalone/ssl
ls -l
Есть какие-то подсказки?
cd ssl: Нет такого файла или каталога
Привет, @slivo!
Это означает, что при последней пересборке вашего контейнера настройка Lets Encrypt не создала сертификаты.
Конечно, я уверен, что вы уже об этом знаете!
На этой неделе у меня была неудачная установка, похожая на эту. Попробуйте выполнить
./launcher rebuild app
Я пересобрал его снова. Настроил согласно инструкциям. Установлен сертифицированный SSL (/etc/nginx/sites-enabled/discourse.conf), но у меня ошибка:
SSL: error:0909006C:PEM routines:get_name:no start line:Expecting: TRUSTED CERTIFICATE
Nginx вообще не запускается.
nginx.service: Control process exited, code=exited status=1
nginx.service: Failed with result 'exit-code'.
Process: 3840 ExecStop=/sbin/start-stop-daemon --quiet --stop --retry QUIT/5 --pidfile /run/nginx.pid (code=exited, status=0/SUCCESS)
Process: 25108 ExecReload=/usr/sbin/nginx -g daemon on; master_process on; -s reload (code=exited, status=1/FAILURE)
// Не удалось запустить высокопроизводительный веб-сервер и обратный прокси-сервер.
Привет, @slivo!
Спасибо за обновление о настройке этого.
Вы настраиваете Discourse со стандартной сборкой Docker без обратного прокси-сервера вне контейнера?
Да, и я также использую это руководство Run other websites on the same machine as Discourse
Привет, @slivo
По ссылке выше описывается запуск Discourse в контейнере Docker с экспонированием приложения через UNIX-сокет к обратному прокси-серверу.
В этом случае НЕ следует включать SSL в файле yml контейнера; и НУЖНО настроить SSL с помощью Let’s Encrypt, используя certbot вне контейнера, только на обратном прокси-сервере.
Общая высокоуровневая архитектура выглядит так:
ПОЛЬЗОВАТЕЛИ ИНТЕРНЕТА <-- HTTPS --> ОБРАТНЫЙ ПРОКСИ <-- HTTP --> КОНТЕЙНЕР DOCKER
Пожалуйста, опубликуйте ваш файл yml, зашумив (закрыв) пароли и адреса электронной почты; и давайте посмотрим, что у вас происходит.
Спасибо.
Но теперь я не понимаю. Затем я создал новый сертификат с помощью certbot. И у меня он выглядит так:
/etc/letsencrypt/live/myadress.com/fullchain.pem
Ваш файл ключа сохранён по адресу:
/etc/letsencrypt/live/myadress.com/privkey.pem
Мне нужно изменить адрес в этом файле или, например, в /etc/nginx/sites-enabled/discourse.conf, или я всё делаю совершенно неправильно?
Привет, @slivo
При настройке обратного прокси-сервера перед другим приложением с использованием экземпляра nginx: вы должны быть очень конкретны относительно расположения файлов конфигурации — внутри контейнера или снаружи?
Не уверен, что полностью понял. Мне просто нужно развернуть Discourse за nginx. У меня нет другого приложения на сервере, но я хочу настроить это для большей защиты извне.
Привет, @slivo!
Понимаю ваше разочарование. Позвольте мне пояснить.
В одном из ваших предыдущих сообщений вы написали:
/etc/letsencrypt/live/myadress.com/fullchain.pem
Ваш ключ сохранён по адресу:
/etc/letsencrypt/live/myadress.com/privkey.pem
Вы не указали, находитесь ли вы внутри контейнера Docker или снаружи.
Как вам известно, в вашем случае nginx запущен как непосредственно на хосте, так и внутри приложения (в контейнере Docker).
Когда вы пишете:
/etc/letsencrypt/live/myadress.com/fullchain.pem
Ваш ключ сохранён по адресу:
/etc/letsencrypt/live/myadress.com/privkey.pem
Как мы, внешние наблюдатели, можем точно понять, о чём именно вы говорите, если не приводите полную информацию? Находится ли эта конфигурация внутри или снаружи контейнера? Мы можем «предположить», что речь идёт о внешней стороне, но поскольку вы не предоставляете этих деталей, мы не можем быть уверены. Мой опыт подсказывает, что кратчайший путь от проблемы к решению — никогда ничего не предполагать и внимательно следить за деталями.
Кроме того, вы не приложили свой файл yml. Также вы не предоставили конфигурационные файлы nginx вне контейнера. Поэтому мы не можем «увидеть», что именно вы делаете в своей конфигурации.
Надеюсь, это поможет.