web-dev-qa-db-ja.com

SSLキーの権限?

Nginxで安全な接続(https)をセットアップしようとしています。

しかし、私は秘密鍵の許可について少し心配しています。これはどのチュートリアルでも言及されていません。

それらを変更する必要がありますか?何に?

15
ChocoDeveloper

秘密鍵の読み取りは大幅に制限する必要があります。アクセス許可を600に設定し、rootが所有するように設定すると機能するはずです。ただし、他にも安全なアクセス許可設定があります。Ubuntuは、所有者rootおよびグループssl-certとアクセス許可710を持つディレクトリにキーを格納します。つまり、ssl-certのメンバーだけがそのディレクトリ内の任意のファイルにアクセスできます。秘密鍵には、グループssl-cert、所有者root、権限640があります。

16
cpast

Nginxのセットアップに問題があり、この質問に出くわしました。ここでの他の回答はすでに質問に直接回答していますが、もう少し情報が役立つと思いました。

通常、nginxはrootユーザーとしてinitスクリプト/ systemdによって起動されます。ただし、nginxには、通常の操作で特権の低いユーザーに切り替える機能もあります。だから私の質問は、どのユーザーがSSL証明書/キーをロードするために使用されていたのですか?最初の特権ユーザーまたは切り替えられたユーザー?

幸い、nginxはユーザーを切り替える前に、初期のアクセス許可を使用して証明書とキーをメモリに読み込みます。そのため、通常、鍵はrootとして実行されているときにnginxによって読み込まれるため、非常に制限されたアクセス許可のままにしておくことができます。


ここにたどり着いたときの問題は、ssl_certificateserverブロックでのみnginx.confを定義していたことでした。 [error] 18606#18606: *311 no "ssl_certificate" is defined in server listening on SSL port while SSL handshakingのようなエラーが発生し、鍵が適切な場所にあることを確認した。その問題は、ssl_certificatehttpレベルでnginx.confを持っていなかったことです。

これが誰かに役立つことを願っています。

4