- - PR -
Digest認証
1
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 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内で何か他の設定があるのではないか?と疑っておりますが、いかがなものでしょうか? | ||||||||||||
|
投稿日時: 2007-02-28 02:10
こんばんわ。
環境が不明なので当てずっぽうですが、rpm/apt 等でインストールした Apache(ですよね?) であれば、/var/log/httpd/error.log や /var/log/apache/error.log あたりでしょうか。 (という回答でよろしいのでしょうか?)
mod_digest モジュールをロードしていないとか…
※パスはnumaoさんの環境にあわせてください。 はずしていたらすみません… | ||||||||||||
|
投稿日時: 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 ] | ||||||||||||
|
投稿日時: 2007-02-28 11:35
Digest認証の場合は、passwdファイルを指定するdirectiveが
"AuthUserFile"ではなく"AuthDigestFile"なのではないでしょうか。 手元のapache2.0では、これできちんと認証できています。 | ||||||||||||
|
投稿日時: 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 | ||||||||||||
|
投稿日時: 2007-03-02 01:01
こんばんは。
おっと。それだと 2.2系ではないでしょうか。( FedoraCore 5 あたりでしょうか? ) 2.0系とは、特に認証関連が違ってきます。
今回の設定では、mod_auth_digest、それに mod_authn_file が必要になると思います。 AuthDigestProviderを明示的に設定する必要があるかどうかは分りませんが、デフォルトが“AuthDigestProvider file”ですから…。 | ||||||||||||
|
投稿日時: 2007-03-02 01:20
こんばんわ。
2.2系はあまり詳しくないですが、
ここも違うような。
でしょうか? |
1