Windows 上で .htpasswd を生成する
Apache において Basic 認証のユーザ名とパスワードを管理する .htpasswd ファイルは、Linux や FreeBSD, OS X では htpasswd コマンドで実行できるが、実は Windows 版の Apache にも同様のプログラムが含まれている。
そのプログラムは、Apache をインストールしたディレクトリの bin 以下にある。XAMPP でインストールした場合は通常 C:/xampp/apache/bin/htpasswd.exe にある。
使い方は htpasswd コマンドと同じで、たとえば .htpasswd を新規作成する場合は次のコマンドで行える。
> C:\xampp\apache\bin\htpasswd -c \path\to\.htpasswd ユーザ名 New password: ******** (パスワードを入力) Re-type new password: ******** (同じパスワードを再度入力) Adding password for user ユーザ名
こうすることで \path\to\.htpasswd にパスワードファイルが生成される。
主な使い方
パスワードファイルを新規作成する (-c)。すでにファイルがある場合は以前の内容は消去される。
htpasswd -c パスワードファイル ユーザ名
既存のパスワードファイルにユーザ名とパスワードの組み合わせを追記する。このとき引数は不要。
htpasswd パスワードファイル ユーザ名2
パスワードをコマンドライン引数として渡す (-b)。バッチ処理の際に使用する。
htpasswd -cb パスワードファイル ユーザ名 パスワード
テストのため、ファイルに書き込まず、標準出力に結果を出力する (-n)。
htpasswd -n パスワードファイル ユーザ名 htpasswd -nb パスワードファイル ユーザ名 パスワード
ハッシュアルゴリズムの指定
パスワードは通常、MD5 アルゴリズムでハッシュされる。変更するには次のオプション引数を指定する。
-m MD5 アルゴリズムを使用する(デフォルト) -B bcrypt アルゴリズムを使用する(より安全) -d CRYPT アルゴリズムを使用する -s SHA アルゴリズムを使用する -p パスワードを平文で保存する
たとえば bcrypt を使用し、パスワードファイルを新規作成する場合は次のようになる。
htpasswd -cB パスワードファイル ユーザ名
Basic 認証の設定
Basic 認証は Apache の設定ファイルに次のように書くことで適用できる。通常 httpd.conf(あるいはそこから読み込まれる設定ファイル) の <Directory>〜</Directory> セクションまたは、Basic 認証を適用したいディレクトリの .htaccess に書く。
AuthUserfile /path/to/.htpasswd AuthGroupfile /dev/null AuthName "Please enter your ID and password" AuthType Basic require valid-user
.htpasswd のパスはフルパスで書く必要があることに注意。