Я устанавливаю ssl-прокси nginx на свой сервер Fedora.
Я создал пару сертификата и ключа в / etc / nginx. Они выглядят так:
ls -l /etc/nginx/
total 84
...
-rw-r--r--. 1 root root 1346 Sep 20 12:11 demo.crt
-rw-r--r--. 1 root root 1679 Sep 20 12:11 demo.key
...
Я пытаюсь запустить службу nginx как root:
systemctl start nginx.service
Я получаю следующую ошибку:
nginx[30854]: nginx: [emerg]
SSL_CTX_use_certificate_chain_file("/etc/nginx/demo.crt") failed (SSL: error:0200100D:system library:fopen:Permission denied...e:system lib)
nginx[30854]: nginx: configuration file /etc/nginx/nginx.conf test failed
Что-то не так с разрешениями на эти файлы?
Вероятно, у вас есть SELinux в принудительном режиме (по умолчанию для Fedora):
sestatus -v
В этом случае проверьте журналы аудита, вы должны найти ошибку доступа:
ausearch -m avc -ts today | audit2allow
Вы также, вероятно, переместили файл вместо его копирования, поэтому контекст безопасности файла может быть неправильным.
ls -lrtZ /etc/nginx/demo.*
и при необходимости исправьте:
restorecon -v -R /etc/nginx
Я предполагаю, что это SELinux отрицает разрешение. Проверьте их контекст SELinux. Их должно быть httpd_config_t. Если нет, беги
restorecon /etc/nginx/demo.*
или
chcon httpd_config_t /etc/nginx/demo.*
как корень.
Вы можете проверить журналы в / var / log / audit /, чтобы узнать, не отказывает ли SELinux в разрешении. Вы также можете запустить
setenforce 0
установить SELinux в разрешительный режим. Таким образом, SELinux по-прежнему генерирует сообщения AVC (в / var / log / audit /), но разрешает доступ.