1

私はWindowsで作業していますが、今のところ、次の.htaccessファイルを使用してHttp Basic認証を行っています:

AuthName "Restricted Area" 
AuthType Basic
AuthUserFile D:\\some\\windows\\path/.htpasswd 
require valid-user

およびパスワード「test」を持つユーザー「test」の次の .htpasswd ファイル ( http://www.htaccesstools.com/htpasswd-generator-windows/を使用して作成):

test:$apr1$EUhLJ8Ye$LpBIbzDcBXY.80pH53oN2/

これは機能し、正しいユーザー名とパスワードを入力してアクセスできます。

しかし、私は SSL を使用していないので、ダイジェスト認証を使用したいと考えています (パスワードを平文でサーバーに送信しないようにするため)。AuthType Basic行をに変更しましAuthType Digestたが、もう機能していません。正しいユーザーとパスを入力していても、アクセスできません。

おそらく、別のアルゴリズムを使用して.htpasswdのパスワードを暗号化/ハッシュする必要がありますが、見つかりません...

4

1 に答える 1

2

ダイジェスト認証を使用する場合は、新しいパスワード ファイルを作成する必要があります。ダイジェスト認証用のものは、基本認証に使用されるものとはわずかに異なる形式になります。通常、apache にはこれを行うためのツールが付属しています。

コマンド ライン プログラム "htpasswd.exe" および "htdigest.exe" に注意してください。ダイジェスト認証用のパスワード ファイルを生成するには、2 番目のものを使用する必要があります。次のように使用します。

c:\path\to\htdigest.exe -cc:\some\windows\path.htpasswd_digest レルム ユーザー名

コマンドを最初に発行するときに「-c」のみが必要です。新しいユーザーを既存のファイルに追加するだけの場合は、次のようになります。

c:\path\to\htdigest.exe c:\some\windows\path.htpasswd_digest レルム another_username

"realm" は、AuthName の Apache 構成で使用した値と同じである必要があります。

ああ、明らかに、Apache 構成で AuthUserFile を更新することを忘れないでください...

于 2013-03-08T18:41:10.323 に答える