nginx と auth_basic 質問する

nginx と auth_basic 質問する

Ubuntu Jaunty で nginx を使用して基本認証を動作させようとしています。nginx.conf で、サーバー コンテキストの下に次の 2 行を追加しました。

server {
   ...
   auth_basic "Restricted Access";
   auth_basic_user_file /etc/nginx/.htpasswd;
   ...
}

次に、apache2-utils を apt-get して htpasswd を取得し、これを使用して htpasswd ファイルを作成しました。

htpasswd -d -c /etc/nginx/.htpasswd joe

サイトにアクセスしようとすると、認証ダイアログが予想どおり表示されますが、ユーザー名とパスワードを入力すると、ダイアログ ボックスが更新されるだけです。入力したパスワードが気に入らないようです。-d オプションありとなしの両方で htpasswd を実行してみましたが、それでもうまくいきませんでした。認証を拒否されました。何が間違っているのか、何か考えはありますか?

ご協力いただければ幸いです。

ベストアンサー1

確認したいこと:

  • `/etc/nginx/.htpasswd` の権限 - nginx を実行しているアカウントでファイルを読み取ることができますか? 一時的に `chmod 644` を使用して、誰でも読み取れるようにすることができます。これが機能する場合は、適切な `chown` と `chmod` 設定の組み合わせを整理して、nginx とあなた/root は読み取れますが、他のユーザーは読み取れないようにすることができます (セキュリティのため)。
  • `htpasswd` が正しい形式でハッシュを生成していることを確認します。通常は約 13 文字の英数字です (例: `username:wu.miGq/e3nro`)。このコマンドは MD5 ハッシュも生成できますが、`username:$apr1$hzB2K...$b87zlCYMKufOxn9ol5QV4/` のようになりますが、これは nginx では機能しません。
  • nginx のデバッグ出力を増やして、エラー ログで手がかりを確認してください。

おすすめ記事