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
これらのファイルの権限に何か問題がありますか?
あなたはおそらく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をpermissiveモードに設定します。このようにして、SELinuxは(/ var/log/audit /に)AVCメッセージを生成しますが、アクセスを許可します。