某ホスティングサーバはコントロールパネルで BASIC 認証用の .htaccess と .htpasswd を生成するようになっているが、cgi-bin 以下のディレクトリは生成先として指定出来ない。
どうしても cgi-bin 以下に BASIC 認証をかけたいので、手動でどうにかしてくれという依頼がお客さんよりあったので対応したが、ちょっとハマってしまった。
うちのサーバ(CentOS)上で、
$ htpasswd -cb .htpasswd hogehoge hogepass
Adding password for user hogehoge
$ cat .htpasswd
hogehoge:ZUb5junE4ayDa
みたいに作った .htpasswd を使って設定したのだが、正しくパスワードを入れても Authorization Required と認証エラーとなる。
元々、手動で BASIC 認証の設定を行うのを推奨してないというか、情報が少ないサーバなので調査にも時間がかかったんだけど、結局、コントロールパネルで作った .htpasswd を見つけて中を見てみると・・・
へえ、珍しく MD5 で暗号化してるなあ・・・(俺は UNIX 系のサーバに触れたのは FreeBSD が最初なので、DES より MD5 の方が好き・・・というかしっくりくるが:-P)
・・・ん?・・・もしかして、.htpasswd の暗号化は、MD5 でなきゃ駄目なの?
大概のホスティングサーバが DES(国際化 DES)でも MD5 でもOKなんだけど、このサーバは MD5 でなきゃ駄目なのかも。
ということで、
$ htpasswd -cb -m .htpasswd hogehoge hogepass
Adding password for user hogehoge
$ cat .htpasswd
hogehoge:$apr1$K3QPv/T9$KMU3gDebRA0R0fdHddjwX1
と、明示的に MD5 encryption を指定して作成した .htpasswd ファイルを使用したところ問題なく BASIC 認証が行われた。
いやあ、ほんとに、世の中色々なホスティングサーバがあるので大変だわ。(^^;
ビジネスがらみで使うサーバは、月数千円の差額なんかケチケチせずに、ssh 接続でターミナルとか使えるサーバを選んでほしいわ(^^;
そしたらトラブルの原因究明なんか一発なのに。大概ね。
コメントする