秘密鍵は読み取りを厳しく制限する必要があります。 600
に権限を設定する root
が所有 動作するはずです。ただし、他の安全なアクセス許可設定があります-Ubuntuは、所有者がroot
のディレクトリにキーを保存します およびグループ ssl-cert
とパーミッション 710
.これは、ssl-cert
のメンバーのみが そのディレクトリ内のすべてのファイルにアクセスできます。秘密鍵にはグループ ssl-cert
があります 、所有者 root
、およびパーミッション 640
.
nginx のセットアップに問題があり、この質問に出くわしました。ここでの他の回答はすでに質問に直接回答していますが、もう少し情報が役立つと思いました.
通常、nginx は root
として起動されます initスクリプト/systemdによるユーザー。ただし、nginx には、通常の操作のために権限の低いユーザーに切り替える機能もあります。私の質問は、ssl 証明書/キーをロードするためにどのユーザーが使用されているかということでした。最初の特権ユーザーですか、それとも切り替えられたユーザーですか?
幸いなことに、nginx は初期パーミッションを使用して、ユーザーを切り替える前に証明書とキーをメモリに読み込みます。したがって、通常、キーは nginx がまだ root
として実行されているときにロードされるため、非常に制限されたアクセス許可をキーに残すことができます。 .
私が遭遇した問題は、私が ssl_certificate
を定義していたことでした。 server
のみ nginx.conf
のブロック . [error] 18606#18606: *311 no "ssl_certificate" is defined in server listening on SSL port while SSL handshaking
のようなエラーが発生していました 私の鍵が正しい場所にあることをよく知っていたとき。その問題は、私が ssl_certificate
を持っていなかったことです。 http
で nginx.conf
のレベル .
これが誰かの役に立てば幸いです。