Я пытаюсь перенастроить 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)
Спасибо за ваш ответ.
По информации, которую вы предоставили, у меня уже есть ссылка и эксперимент.
Но результат неудачный: служба 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, а другой — путь к файлу на реальном сервере.
Кажется, что пути не совпадают, но на самом деле они идентичны.
Первую проблему я уже решил.
Коренная причина для меня заключалась в том, что я не обратил внимания на формат сертификата.
В конфигурации указан формат crt, но я всегда использовал файлы формата cer, поэтому nginx не смог успешно прочитать файл сертификата.