私は何年もの間これにこだわっていて、誰かがいくつかのアドバイスを提供できることを望んでいます。
サイトに新しいSSL証明書をインストールしようとしています。実行中nginx -t
次のエラーが発生します。
nginx: [emerg] BIO_new_file("/etc/nginx/ssl/mysite_com/mysite_com.crt") failed (SSL: error:0200100D:system library:fopen:Permission denied:fopen('/etc/nginx/ssl/mysite_com/mysite_com.crt','r') error:2006D002:BIO routines:BIO_new_file:system lib)
nginx: configuration file /etc/nginx/nginx.conf test failed
これで、mysite_com.crtの所有者/グループを、nginxテストに合格した以前の構成にあったファイルと同じに設定しました。権限も同じに設定しました。テストのためにファイルのアクセス許可を一時的に777に設定しても、同じエラーが発生しました。また、777を使用してパーティションのルートに/ ssl /ディレクトリを作成しようとしましたが、それでも同じエラーが発生しました。所有者をhttp
に設定しました。これは、このマシンのWebサーバーユーザーであり、何もありません。
私は完全に困惑しています。助言がありますか?
提案は1つしかありません。ファイル/etc/nginx/ssl/mysite_com/mysite_com.crt
にアクセスするための十分な権限がありません。アカウントでnginx -t
を起動すると、nginxはあなたの権限で起動したため、このファイルにアクセスできませんでした。何も変更せずにこの問題を修正する方法は2つあります。 1つ目は、ルートアカウントでnginx -t
を実行するか、Sudoを使用して構成をテストします。2つ目は、httpアカウントでnginx -t
を実行して、実際の環境でnginxがどのように起動するかを確認します。ただし、変更を加えたい場合は、ユーザーをグループhttpに追加してnginx -t
を実行してみてください。