🔐 .htpasswd 生成(Basic認証)
Apache の Basic認証(.htaccess)用に、ユーザー名とパスワードから
.htpasswd の1行(ユーザー名+ハッシュ)を生成します。処理はすべてブラウザ内で行われ、入力は送信されません。
入力
「:」は使えません。空にするとハッシュのみ出力します。
表示のまま入力欄に出ます。控えてから閉じてください(保存されません)。
大きいほど強力&低速(10〜12が目安)
.htpasswd の1行
このファイルを(例)サーバーの ~/.htpasswd に保存します。複数ユーザーは1人1行で追記します。
.htaccess の記述例
サーバー上の .htpasswd の絶対パスに置き換えてください。
※ ハッシュの計算(APR1・bcrypt・SHA1)はすべてお使いのブラウザ内で行われ、ユーザー名・パスワードが外部に送信されることはありません。
出力は htpasswd/openssl passwd の結果と一致することを検証しています。
推奨は bcrypt または APR1(MD5) です。SHA1({SHA})はソルトがなく安全性が低いため互換目的以外では避けてください。
共有ホスティング(Apache)では APR1(MD5) が広く使えます。
解説
Basic認証(ベーシック認証)は、Webサイトの特定のディレクトリにユーザー名とパスワードで簡単なアクセス制限をかける、Apache 標準のしくみです。制限をかけるには .htaccess に認証設定を書き、許可するユーザーとパスワード(のハッシュ)を .htpasswd というファイルに1人1行で登録します。このツールは、その .htpasswd に書く1行を安全に作成します。
.htpasswd に平文のパスワードは書きません。パスワードは必ずハッシュ化して保存します。本ツールは Apache がサポートする3つの形式に対応しています。APR1(MD5) は Apache 独自の $apr1$ 形式で、共有ホスティングを含め広く使える標準的な形式です。bcrypt($2y$)は計算コストを指定でき、現在もっとも安全とされる形式で Apache 2.4 以降で使えます。SHA1({SHA})はソルトがなく安全性が低いため、既存システムとの互換目的以外では避けてください。
使い方はかんたんです。ユーザー名とパスワードを入れ、形式を選んで「生成する」を押すだけ。パスワードは「ランダム生成」で強力なものを作れます。生成された1行をサーバー上の .htpasswd に保存し、制限したいディレクトリの .htaccess に AuthUserFile などの設定を書けば、次回アクセスから認証ダイアログが表示されるようになります。
重要なのは、ハッシュの計算がすべてあなたのブラウザ内(JavaScript)で完結し、ユーザー名・パスワードが外部のサーバーに送信されないことです。オンラインの生成ツールの中には入力をサーバーに送るものもありますが、パスワードのような機微な情報を外部に送るのは望ましくありません。本ツールはオフラインでも動作します。
出力の正確性にも配慮しています。本ツールの APR1・bcrypt・SHA1 の実装は、コマンドラインの htpasswd や openssl passwd が出力するハッシュと一致することを検証しています。生成した行はそのまま Apache の Basic認証で利用できます。bcrypt のソルトや APR1 のソルトは毎回ランダムに作られるため、同じパスワードでも生成のたびに異なるハッシュになりますが、いずれも正しく認証されます。
セキュリティのヒント:パスワードは十分に長く複雑なものにし(「ランダム生成」が便利です)、.htpasswd はできればWeb公開ディレクトリの外に置きます。より強固にしたい場合は bcrypt を選び、コストを10〜12程度にすると安全性と速度のバランスが取れます。Basic認証は通信が暗号化されない環境では盗聴に弱いため、必ず HTTPS 上で利用してください。
よくある質問
どのハッシュ形式を選べばよいですか?
迷ったら APR1(MD5) を選べば、共有ホスティングを含め多くの Apache 環境でそのまま使えます。より高い安全性を求め、サーバーが Apache 2.4 以降なら bcrypt がおすすめです。SHA1({SHA})はソルトがなく弱いため、既存の設定に合わせる必要がある場合だけにしてください。
生成したハッシュはコマンドの htpasswd と同じですか?
はい。本ツールの APR1・bcrypt・SHA1 の出力は、htpasswd コマンドや openssl passwd の結果と一致することを検証しています。同じパスワードでもソルトが毎回変わるため文字列自体は変わりますが、どちらも正しく認証されます。
入力したパスワードは送信されますか?
送信されません。ハッシュの計算はすべてお使いのブラウザ内で行われ、ユーザー名やパスワードが外部へ送られることはありません。オフラインでも動作します。
.htpasswd と .htaccess はどう使い分けますか?
.htpasswd は「誰が」「どのパスワードで」入れるかを登録するファイル(ユーザー名:ハッシュ を1人1行)です。.htaccess は制限をかけるディレクトリに置き、AuthType や AuthUserFile などの設定でその .htpasswd を参照します。本ツールは両方の中身を生成します。
複数のユーザーを登録するには?
1人につき1行を .htpasswd に追記します。ユーザーごとにこのツールで行を生成し、既存の .htpasswd の末尾に貼り足してください。同じユーザー名の行が重複しないよう注意します。
パスワードにマルチバイト文字(日本語)や記号は使えますか?
技術的には UTF-8 として扱われ計算できますが、Basic認証はブラウザやサーバーの文字コードの扱いで相性問題が起きることがあります。トラブルを避けるため、パスワードは英数字と記号(ASCII)の範囲にすることをおすすめします。ユーザー名に「:」は使えません。