Apacheの基本認証が通らない
Apache2.4.4でhtpasswdを使って基本認証ファイルにユーザを追加。
# /usr/local/apache2/bin/htpasswd /usr/local/apache/conf/.htpasswd newuser New password: xxxxxx (実際はエコーされない) Re-type new password:xxxxxx Adding password for user newuser
これでapacheを再起動。でもちゃんと認証されない。error_logをみるとパスワードが違いますとのこと。
[Thu Jun 06 10:52:32.652943 2013] [auth_basic:error] [pid 27900:tid 140454880155392] [client xx.xx.xx.xx:47672] AH01617: user newuser: authentication failure for "/example": Password Mismatch
なぜだ。.htpasswd中の既存ユーザのパスワードカラムをnewuserのところにコピーすると認証が通るのでapacheの設定ファイルの問題ではない。htpasswdが生成するパスワードが間違っているのかなと昔の記事を参考にしてperlでパスワード生成。そうするとちゃんと認証される。どうやらhtpasswdが間違っているようです。
apacheのbugzillaを検索すると、やっぱりhtpasswdのバグらしい。
こうやってコマンドラインからパスワード指定すると回避できる。
htpasswd -b passwordfile user password