Отключение Let's Encrypt не удалось, а запуск discourse-setup вызвал несколько необычных предупреждений

Я пытаюсь перенастроить SSL-сертификат и отключить бесплатный сертификат Let’s Encrypt.
Поскольку у меня есть купленный сертификат, я нашел некоторые инструкции через Google.

Я напрямую изменил app.yml и убедился, что ключ и сертификат в /var/discourse/shared/standalone/ssl/ имеют имена файлов, соответствующие конфигурационному файлу, затем выполнил пересборку. Однако результат неудачен: система по-прежнему использует сертификат Let’s Encrypt.

В логах nginx есть следующие ошибки:


2021/09/25 16:37:26 [emerg] 48#48: cannot load certificate "/shared/ssl/ssl.crt": BIO_new_file() failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/shared/ssl/ssl.crt','r') error:2006D080:BIO routines:BIO_new_file:no such file)

2021/09/25 16:37:27 [emerg] 78#78: cannot load certificate "/shared/ssl/ssl.crt": BIO_new_file() failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/shared/ssl/ssl.crt','r') error:2006D080:BIO routines:BIO_new_file:no such file)

2021/09/25 16:37:28 [emerg] 80#80: cannot load certificate "/shared/ssl/ssl.crt": BIO_new_file() failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/shared/ssl/ssl.crt','r') error:2006D080:BIO routines:BIO_new_file:no such file)

2021/09/25 16:37:29 [emerg] 82#82: cannot load certificate "/shared/ssl/ssl.crt": BIO_new_file() failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/shared/ssl/ssl.crt','r') error:2006D080:BIO routines:BIO_new_file:no such file)

2021/09/25 16:37:30 [emerg] 95#95: cannot load certificate "/shared/ssl/ssl.crt": BIO_new_file() failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/shared/ssl/ssl.crt','r') error:2006D080:BIO routines:BIO_new_file:no such file)

2021/09/25 16:37:31 [emerg] 104#104: cannot load certificate "/shared/ssl/ssl.crt": BIO_new_file() failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/shared/ssl/ssl.crt','r') error:2006D080:BIO routines:BIO_new_file:no such file)

2021/09/25 16:37:32 [emerg] 106#106: cannot load certificate "/shared/ssl/ssl.crt": BIO_new_file() failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/shared/ssl/ssl.crt','r') error:2006D080:BIO routines:BIO_new_file:no such file)

Я проверил наличие файлов в директории:

root@discourse-test:/var/discourse/shared/standalone/ssl# ls -al ssl.*
-rw-r--r-- 1 root root 7868 Sep 25 16:24 ssl.cer
-rw------- 1 root root 1675 Sep 25 16:24 ssl.key

Также нашел обсуждение по следующей ссылке:

Удаление Let’s Encrypt из вариантов установки

При запуске ./discourse-setup я получаю предупреждение:

./discourse-setup: line 471: [: 1234567890123456: binary operator expected

Есть ли какие-либо предложения по отключению Let’s Encrypt или решению проблемы перенастройки?

Существуют темы о том, как использовать собственный сертификат. Вы можете попробовать поискать, но эта ниша — Только для продвинутой настройки: Разрешение SSL/HTTPS для вашей установки Discourse в Docker.

Привет, pfaffman

Спасибо за ваш ответ.
По информации, которую вы предоставили, у меня уже есть ссылка и эксперимент.
Но результат неудачный: служба nginx не может прочитать файл.

Сообщение об ошибке описано выше:

2021/09/25 16:37:26 [emerg] 48#48: cannot load certificate "/shared/ssl/ssl.crt": BIO_new_file() failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/shared/ssl/ssl.crt','r') error:2006D080:BIO routines:BIO_new_file:no such file)

2021/09/25 16:37:27 [emerg] 78#78: cannot load certificate "/shared/ssl/ssl.crt": BIO_new_file() failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/shared/ssl/ssl.crt','r') error:2006D080:BIO routines:BIO_new_file:no such file)

2021/09/25 16:37:28 [emerg] 80#80: cannot load certificate "/shared/ssl/ssl.crt": BIO_new_file() failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/shared/ssl/ssl.crt','r') error:2006D080:BIO routines:BIO_new_file:no such file)

2021/09/25 16:37:29 [emerg] 82#82: cannot load certificate "/shared/ssl/ssl.crt": BIO_new_file() failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/shared/ssl/ssl.crt','r') error:2006D080:BIO routines:BIO_new_file:no such file)

2021/09/25 16:37:30 [emerg] 95#95: cannot load certificate "/shared/ssl/ssl.crt": BIO_new_file() failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/shared/ssl/ssl.crt','r') error:2006D080:BIO routines:BIO_new_file:no such file)

2021/09/25 16:37:31 [emerg] 104#104: cannot load certificate "/shared/ssl/ssl.crt": BIO_new_file() failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/shared/ssl/ssl.crt','r') error:2006D080:BIO routines:BIO_new_file:no such file)

2021/09/25 16:37:32 [emerg] 106#106: cannot load certificate "/shared/ssl/ssl.crt": BIO_new_file() failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/shared/ssl/ssl.crt','r') error:2006D080:BIO routines:BIO_new_file:no such file)

Мне удалось изменить сертификат на свой собственный.

Я продолжал использовать неверное имя файла учетных данных: в настройках nginx требуется файл с расширением crt, а я устанавливал и тестировал файл с расширением cer.
Таким образом, я решил проблему с SSL.

Спасибо.

Одна из заметных особенностей ваших первых нескольких постов заключалась в следующем:

cannot load certificate "/shared/ssl/ssl.crt"

и

Подтвердите наличие файла в каталоге:

root@discourse-test:/var/discourse/shared/standalone/ssl# ls -al ssl.*

Обратите внимание на различие после части пути /shared/. Nginx ожидал, что файл ssl.crt будет находиться в папке shared/ssl/. Вы нашли его в shared/standalone/. Файл отсутствовал в том пути, где Nginx искал его.

@JimPas Спасибо за ваш ответ. Я указал, что пути не совпадают, потому что один путь — это путь тома Docker, а другой — путь к файлу на реальном сервере.

Только для расширенной настройки: включение SSL/HTTPS для вашей установки Discourse в Docker

volumes:
  - volume:
      host: /var/discourse/shared/standalone
      guest: /shared

Кажется, что пути не совпадают, но на самом деле они идентичны.
Первую проблему я уже решил.
Коренная причина для меня заключалась в том, что я не обратил внимания на формат сертификата.
В конфигурации указан формат crt, но я всегда использовал файлы формата cer, поэтому nginx не смог успешно прочитать файл сертификата.

:man_facepalming:
Я этого никогда не замечал. Ну, пусть мне дадут по рукам!
Рад, что вы это заметили и исправили. :+1: