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


25

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

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


それは証明書チェーンに言及しています...そのdemo.crtキーの認証局の問題ではありませんか?それとも自己署名証明書ですか?ちなみに、キーファイルは世界中で読めるとは思わない。Nginxはこれをrootとして開き、実行するユーザーに特権をドロップします。
アレシュクレイニク

はい、自己署名です。所有権を変更します、ありがとう。
numb3rs1x

問題は証明書にあると仮定しますが、エラーメッセージはNginxの構成ファイルに適用されます。
bbaassssiiee

回答:


39

おそらく、強制モードのSELinuxがあります(Fedoraのデフォルト):

sestatus -v

この場合、監査ログを確認すると、アクセスエラーが見つかります。

ausearch -m avc -ts today | audit2allow

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

ls -lrtZ /etc/nginx/demo.* 

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

restorecon -v -R /etc/nginx

どうもありがとうございました。私はあなたの指示に従いましたが、エラーはもう発生していません。これらのファイルを作成したディレクトリから移動しました。次回は同じディレクトリに作成できます。それ以外に、これが将来起こるのをどのように防ぐのですか?
numb3rs1x

この特定のユースケースでは、システムのcp代わりにmvを使用し、auditシステムを使用してAVC拒否を探すことを学習します。
ダウド

ausearch | audit2allowコマンド。それはselinuxにいくつかの許可を追加しましたか、それともselinuxが問題であることを確認するためだけですか?
numb3rs1x

確認するだけでした。詳細については、それぞれのマニュアルページを参照してください。
dawud

4
わあ、ありがとう!「SELinuxを無効にする」だけでなく、答えがあると便利です。
BCran

7

許可を拒否するのは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メッセージを生成しますが、アクセスを許可します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.