web-dev-qa-db-ja.com

SSL構成の証明書ファイルに対するnginx権限が拒否されました

Fedoraサーバーにnginx sslプロキシをインストールしています。

/ 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サービスを開始しようとしています:

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

これらのファイルの権限に何か問題がありますか?

27
numb3rs1x

あなたはおそらくSELinuxを強制モード(Fedoraのデフォルト)にしています:

sestatus -v

この場合は、監査ログを確認してください。アクセスエラーが見つかります。

ausearch -m avc -ts today | audit2allow

また、ファイルをコピーする代わりに移動した可能性があるため、ファイルのセキュリティコンテキストが間違っている可能性があります。

ls -lrtZ /etc/nginx/demo.* 

必要に応じて修正します。

restorecon -v -R /etc/nginx
42
dawud

許可を拒否するのはSELinuxだと思います。 SELinuxコンテキストを確認してください。それらはhttpd_config_tである必要があります。そうでない場合は、実行します

restorecon /etc/nginx/demo.*

または

chcon httpd_config_t /etc/nginx/demo.*

ルートとして。

/ var/log/audit /の下にあるログをチェックして、許可を拒否しているのがSELinuxかどうかを確認できます。実行することもできます

setenforce 0

sELinuxをpermissiveモードに設定します。このようにして、SELinuxは(/ var/log/audit /に)AVCメッセージを生成しますが、アクセスを許可します。

9
jdh8