Назад | Перейти на главную страницу

Запрещено разрешение nginx для файлов сертификатов для конфигурации ssl

Я устанавливаю 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 /), но разрешает доступ.