パスワードで保護されたディレクトリにアクセスすると、403 Forbidden が表示されます

パスワードで保護されたディレクトリにアクセスすると、403 Forbidden が表示されます

私は nginx を使用していますが、ディレクトリをパスワードで保護し、ログイン情報を入力すると、403 エラーが発生します (:O)

        場所 ~ ^/documents {
        auth_basic "アクセスが制限されています。";
#古い行。
# auth_basic_user_file /private/pass;
#改行。
       auth_basic_user_file /var/www/site.com/private/pass;
}

パスファイルは次のようになります

thisID:thisPass: こんにちはコメント!

何かヒントはありますか?

答え1

一致しない場合でも、エラーが発生します...

パスファイルは次のようになります

thisID:thisPass: こんにちはコメント!

パスワードは実際に暗号化されていると想定していますか? そうあるべきだと思います。そのパスワード ファイルに人間が判読できるパスワードを単純に入力できるとは思えません。

nginx がそのファイルでエンコード/暗号化されたパスワードを期待している場合、保存されているパスワードが別の形式を使用している場合、一致するものを見つけることはできません。(一致するものを見つけるために、ユーザーが入力したパスワードをエンコードし、そのエンコードされた入力をファイルからわかっているエンコードされたパスワードと比較します。) そして実際、ドキュメントパスワードはcrypt(3)関数でエンコードする必要があります。Apacheのhtpasswdプログラムを使用してパスワードファイルを作成できます。

これはまだ実際のエラー メッセージを説明するものではありませんが、パスワード ファイルに人間が判読できるパスワードが含まれている場合、確実に または が生成され402 Unauthorizedます403 Forbidden

このような暗号化されたパスワードはオンラインでも作成できます。さまざまなウェブサイト

答え2

この種の問題で苦労した私の経験では、コンピューターがファイルまたはディレクトリが存在しないと表示しても、実際には存在しないのです。:-)

サーバーのルートからの相対パスでファイルを探してみてください。

auth_basic_user_file   /private/pass;

答え3

場所/ファイル パスが意図したとおりに一致していないのではないかと思います。ファイル パスに関する構文は確実に正しいですか?

また、サーバーは問題のパスワード ファイルへの読み取りアクセス権を持っていますか?

関連情報