- PR -

Digest認証

1
投稿者投稿内容
numao
常連さん
会議室デビュー日: 2007/01/28
投稿数: 28
お住まい・勤務地: 東京
投稿日時: 2007-02-27 21:29
 いつもお世話になっております。Webサーバーにて、Digest認証ディレクトリを作成している途中で、行き詰まってしまいました。
 ダイジェストするディレクトリの指定と、ユーザー名、パスワードの設定をしたのですがうまくいきません。指定のディレクトリにアクセスしてから認証後、Internal Server Errorが出てしまい、ディレクトリ中のindex.htmlにアクセスしてくれません。

 設定の手順は以下の通りなのですが、どこか間違っている点があるでしょうか?
気になったのがディレクトリのパーミッションなのですが、755に設定しています。大丈夫でしょうか?

1.httpd.conf内で、
<Directory /home/<ユーザー名>/public_html/digest>
AuthType Digest
AuthName "Digest Test"
AuthUserFile "/etc/httpd/conf/passwds-list/.digest"
Require user
<Directory>

2.# htdigest -c /etc/httpd/conf/passwds-list/.digest "Digest Test" user
(パスワードを入力して設定)

3.# mkdir /home/<ユーザー名>/public_html/digest

4.# chown <ユーザー名>. /home/<ユーザー名>/public_html/digest

5.# /etc/rc.d/init.d/httpd restart

です。手順としては間違っていないように思うのですが、エラーが出てしまいます。
また、このエラーを分析する為のエラーログはどこにあるのでしょうか?
これと(多少違いはありますが…)Basic認証はきちんと機能しております。

あるいは、httpd.conf内で何か他の設定があるのではないか?と疑っておりますが、いかがなものでしょうか?
Ay
常連さん
会議室デビュー日: 2006/10/29
投稿数: 45
投稿日時: 2007-02-28 02:10
こんばんわ。
引用:

numaoさんの書き込み (2007-02-27 21:29) より:

また、このエラーを分析する為のエラーログはどこにあるのでしょうか?


環境が不明なので当てずっぽうですが、rpm/apt 等でインストールした Apache(ですよね?) であれば、/var/log/httpd/error.log や /var/log/apache/error.log あたりでしょうか。
(という回答でよろしいのでしょうか?)

引用:

あるいは、httpd.conf内で何か他の設定があるのではないか?と疑っておりますが、いかがなものでしょうか?


mod_digest モジュールをロードしていないとか…

コード:
LoadModule digest_module /usr/lib/apache/1.3/mod_digest.so


※パスはnumaoさんの環境にあわせてください。

はずしていたらすみません…
angel
ぬし
会議室デビュー日: 2005/03/17
投稿数: 711
投稿日時: 2007-02-28 02:57
こんばんは。
とりあえず環境が不明ですね。

パッケージとして入っているApacheであれば、2.0系である可能性が高いと思うのですが、もし 2.2系を使っているのだと、大分話が変わってきますし。

ディストリビューションなり、Apache本体のバージョン情報なりは取り敢えず必要でしょう。( httpd -V とか httpd -v とか )
また、エラーログに出ている内容がやはり必要ですが、どうしてもログファイルの位置がわからない場合は、ps で httpd のプロセスID を調べて、

 ls -l /proc/プロセスID/fd

のコマンドを ( rootかapache実行ユーザの権限で ) 実行すれば、大体わかります。
( PID 10000 で動作中なら、 ls -l /proc/10000/fd とか )

ちなみに、載せていただいている設定は、「<Directory>〜<Directory>」となっていますが、正しくは「<Directory>〜</Directory>」ですよね?
※あくまで Internal Server Error ということで、Apache 自体は起動している、つまり設定に文法ミス等はない、ということですよね?

[ メッセージ編集済み 編集者: angel 編集日時 2007-02-28 03:10 ]
じぇい
会議室デビュー日: 2005/08/04
投稿数: 1
投稿日時: 2007-02-28 11:35
Digest認証の場合は、passwdファイルを指定するdirectiveが
"AuthUserFile"ではなく"AuthDigestFile"なのではないでしょうか。

手元のapache2.0では、これできちんと認証できています。
numao
常連さん
会議室デビュー日: 2007/01/28
投稿数: 28
お住まい・勤務地: 東京
投稿日時: 2007-03-01 22:30
(レスが遅れました。)

 アドバイスありがとうございます!
 環境の説明を詳しくしていませんでした。Apacheは、httpd-2.2.2-1.2です。Apache2.0系であります。
 mod_digestは取り込んでいるようです。httpd.confに書かれているということは、ロードされているということだと思うのですが、いかがなものでしょうか?

 <Directory>〜<Directory>」となっていますが、正しくは「<Directory>〜</Directory>」です。書き込む際のミスでした。ファイルには正しく書かれています。

 エラーログとプロセスを解析してみましたが、これと言っておかしな部分がないように感じました。(ただ、ひとつひとつわからないことを調べながらの解析だったので、どこかでミスがあるかもわかりません。もう一度やってみます。)

 "AuthUserFile"ではなく"AuthDigestFile"を設定すると、Syntax errorが出ます。AuthUserFileにするとエラーは出ませんが機能しない…といった感じです。

 自分でちょっと変だな…と思ったのは、Basic認証のpasswdsファイルと同じディレクトリに、Digest認証のpasswdsファイルも格納しております。勿論別々のファイル名にしてあるのですが、これが何か問題を引き起こすことになるのでしょうか?
 管理しやすいように同じディレクトリ内に納めている…ということだけなのですが…。というのは、このスレッドを書いた時には気がつかなかったのですが、これまで正常に機能していたBasic認証が機能しなくなっていたのでした。

 明日、設定を最初からやり直してみて、再度報告しますので、またよろしくお願いします。





/var/log/httpd/error.log や /var/log/apache/error.log

 
angel
ぬし
会議室デビュー日: 2005/03/17
投稿数: 711
投稿日時: 2007-03-02 01:01
こんばんは。
引用:
numaoさんの書き込み (2007-03-01 22:30) より:
 環境の説明を詳しくしていませんでした。Apacheは、httpd-2.2.2-1.2です。Apache2.0系であります。


おっと。それだと 2.2系ではないでしょうか。( FedoraCore 5 あたりでしょうか? )
2.0系とは、特に認証関連が違ってきます。

引用:
 mod_digestは取り込んでいるようです。httpd.confに書かれているということは、ロードされているということだと思うのですが、いかがなものでしょうか?


今回の設定では、mod_auth_digest、それに mod_authn_file が必要になると思います。
AuthDigestProviderを明示的に設定する必要があるかどうかは分りませんが、デフォルトが“AuthDigestProvider file”ですから…。
Ay
常連さん
会議室デビュー日: 2006/10/29
投稿数: 45
投稿日時: 2007-03-02 01:20
こんばんわ。

2.2系はあまり詳しくないですが、
引用:

numaoさんの書き込み (2007-02-27 21:29) より:

<Directory /home/<ユーザー名>/public_html/digest>
AuthType Digest
AuthName "Digest Test"
AuthUserFile "/etc/httpd/conf/passwds-list/.digest"
Require user
<Directory>
でしょうか?


ここも違うような。
コード:
valid-user


でしょうか?
1

スキルアップ/キャリアアップ(JOB@IT)