Вот ошибка, которую я получаю:
Не удалось перезагрузить конфигурацию nginx: nginx: [emerg] SSL_CTX_use_certificate_chain_file ("/ path / to / cert.pem") (SSL: ошибка: 02001002: системная библиотека: fopen: такого файла или каталога нет: 20074002: подпрограммы BIO: FILE_CTRL: система Ошибка lib: 140DC002: подпрограммы SSL: SSL_CTX_use_certificate_chain_file: системная библиотека) nginx: файл конфигурации /etc/nginx/nginx.conf не пройден
Я на 100% уверен, что файл находится в этом месте, но Nginx, похоже, считает, что его там нет. Я слил domain.crt
и intermediate.crt
вручную в таком порядке. Я чесал голову над этим весь день. Я надеюсь, что кто-то видел эту ошибку и найдет решение. (И примечание, что при вставке расположение файла отображается только один раз, а не после «нет такого файла или каталога»).
источник
path/to/cert.pem
это определенно недопустимое местоположение.Ответы:
Вы уверены, что пользователь Nginx имеет доступ к каталогу?
Также проверьте права доступа к
.pem
файлу, если Nginx не может получить к нему доступ, он может отображаться как'no such file or directory'
.Если разрешения правильные, вы можете проверить фактический путь еще раз. Как вы его вставили (я знаю, что вы удалили каталог), нет начала, в
/
котором может быть проблема.РЕДАКТИРОВАТЬ
Попробуйте переместить настройки SSL в следующую структуру (а также изменить,
nginx.conf
чтобы отразить):Возможно, на Nginx
.pem
произошел сбой, потому что разрешения слишком открыты (нужен источник, чтобы убедиться, что Nginx это делает), но вышеуказанные настройки должны работать нормально.источник
/
в начале, поэтому я изменил вопрос, чтобы отразить это. Файл находится в/home/user/subdirs
и все права доступа к файлам и каталогам в нем принадлежат user.www-data (username.group name) и 775 set. И я думаю, что nginx имеет доступ ко всему, что принадлежит www-данным, хотя я могу ошибаться.$root/keys/
так что моя линия сертификата выглядит такssl_certificate keys/cert.pem
... они должны быть в корне?chmod -R 600 /etc/nginx/ssl
в мою точку входа решить проблему спасибоЯ оставлю свой ответ на мою проблему, на случай, если кто-нибудь столкнется с этой темой.
Я запускаю nginx внутри Docker-контейнера, и у меня возникает та же ошибка при попытке доступа к файлу с закрытым ключом. Несколько часов почесав голову, я понял, что у моего докера nginx нет тома монтирования, в котором хранятся мои данные.
Единственный вариант добавления тома монтирования - удалить и заново создать контейнер с
-v
параметром: https://docs.docker.com/engine/tutorials/dockervolumes/.Иногда банальные вещи трудно увидеть. Надеюсь, это поможет.
источник
Возможный сценарий:
иногда может случиться так, что при настройке файлов SSL (секретный ключ и сертификат) для настраиваемого виртуального хоста было забыто указать абсолютный путь, в котором находятся эти файлы.
Например, если вы следуете этому официальному документу от Nginx: http://nginx.org/en/docs/http/configuring_https_servers.html
Предположим, что вы храните файлы SSL внутри " /etc/nginx/conf.d ":
Что происходит?
По умолчанию, если не указан абсолютный путь для обычного файла, который используется Nginx, Nginx будет искать файлы в "/ etc / nginx"
Из /var/log/nginx/error.log
Что должно быть сделано?
Чтобы указать абсолютный путь к дополнительным файлам, которые используются вашей конфигурацией Virtualhost.
Как это:
источник
Я была такая же проблема. Мне пришлось изменить файлы / etc / nginx / sites-enabled / default & default.save, которые автоматически добавляли имя моего сайта без имени .com после него во время процесса установки, что было проблемой в моем случае . Короче говоря, эти две строки нужно было изменить в моем / etc / nginx / sites-enabled / default. Обратите внимание, что этот файл отображается с ярлыком в моей файловой системе, но я смог щелкнуть файл правой кнопкой мыши и отредактировать его с помощью параметра «Редактировать / Внутренний редактор».
HTTPS - запросы прокси к локальному Node.js ap # HTTPS - запросы прокси к локальному приложению Node.js: server {listen 443; имя_сервера switchmagic.com;
Когда я просмотрел файлы и добавил .com, то есть соглашение об именах, которое я использовал для добавления файла, к ссылкам switchmagic в каталогах файлов, которые выдавали ошибки, все было хорошо! Я обнаружил, что многие разработчики задают один и тот же вопрос, поэтому я хотел выложить свое решение, чтобы помочь, поскольку ответы, которые я нашел, были в основном о правах root, но в моем случае права root не были проблемой. Рок на Devs.
источник