.htpasswdの作り方|Basic認証のパスワードをブラウザだけで生成する
公開日:2026年8月14日 対象ツール:.htpasswd 生成(Basic認証)
Webサイトの一部を「関係者だけに見せたい」ときに手軽なのが、ApacheのBasic認証(ベーシック認証)です。設定するとページを開いたときにユーザー名とパスワードの入力ダイアログが表示され、正しく入力しないと中に入れなくなります。この認証で使うパスワードは .htpasswd というファイルに登録しますが、そこには平文のパスワードではなくハッシュ化した文字列を書く必要があります。.htpasswd 生成(Basic認証)は、その1行をブラウザだけで安全に作れる無料ツールです。
.htpasswd と .htaccess の役割の違い
混同しやすいので先に整理します。2つのファイルは役割が分かれています。
- .htpasswd:誰が・どのパスワードで入れるかを登録する名簿。
ユーザー名:ハッシュの形で、1人につき1行書きます。 - .htaccess:制限をかけたいディレクトリに置く設定ファイル。「ここはBasic認証で守る」「名簿は .htpasswd を見る」と指定します。
このツールは、両方の中身(.htpasswd の1行と、.htaccess の記述例)を生成します。
使い方
- ユーザー名を入力します(
:は区切り文字なので使えません。空にするとハッシュだけを出力します)。 - パスワードを入力するか、「ランダム生成」で強力なパスワードを作ります。長さも選べます。
- ハッシュ形式を選びます(迷ったら APR1(MD5))。bcrypt を選んだときはコスト(強度)も指定できます。
- 「生成する」を押すと
ユーザー名:ハッシュの1行が表示されるので、「この行をコピー」で控えます。 - AuthUserFile のパスを入れると
.htaccessの記述例も生成されます。あわせてコピーして設置します。
ハッシュ形式の選び方(APR1・bcrypt・SHA1)
Apacheが対応する主な3形式には、それぞれ向き・不向きがあります。
- APR1(MD5・
$apr1$):Apache独自の形式で、共有ホスティングを含め幅広い環境でそのまま使える標準。どれにするか迷ったらこれが無難です。 - bcrypt(
$2y$):計算コストを指定でき、現在もっとも安全とされる形式。サーバーがApache 2.4以降なら第一候補です。コストは10〜12が強度と速度のバランスの目安です。 - SHA1(
{SHA}):ソルト(味付けの乱数)がなく安全性が低いため、既存の設定に合わせる必要があるときだけにしてください。
なお、bcryptやAPR1は毎回ランダムなソルトを使うため、同じパスワードでも生成のたびにハッシュ文字列が変わります。これは正常で、どちらも正しく認証されます。
.htaccess の書き方の例
制限したいディレクトリに置く .htaccess は、次のような内容になります(AuthUserFile のパスは実際の .htpasswd の絶対パスに置き換えます)。
AuthType BasicAuthName "Restricted Area"AuthUserFile /home/あなた/.htpasswdRequire valid-user
AuthName は認証ダイアログに表示される見出しです。Require valid-user は「.htpasswd に登録された全員を許可する」という意味です。
入力したパスワードは送信されません
パスワードのような機微な情報を、生成のために外部サーバーへ送るのは避けたいものです。このツールはハッシュの計算(APR1・bcrypt・SHA1)をすべてあなたのブラウザ内(JavaScript)で実行し、ユーザー名やパスワードを外部に送信しません。オフラインでも動作します。さらに、生成されるハッシュはコマンドの htpasswd や openssl passwd の出力と一致することを検証しているので、そのままApacheのBasic認証で利用できます。
安全に使うためのポイント
- 必ずHTTPSで使う:Basic認証は通信が暗号化されない環境では、ユーザー名・パスワードが盗聴される恐れがあります。
- .htpasswd の置き場所:可能ならWeb公開ディレクトリの外に置き、URLから直接ダウンロードされないようにします。
- パスワードは長く複雑に:「ランダム生成」で16文字以上にするのがおすすめです。
- より強くしたいなら bcrypt:コストを上げるほど総当たり攻撃に強くなります(その分わずかに生成が遅くなります)。
よくある質問
複数のユーザーを登録するには?
1人につき1行を .htpasswd に追記します。ユーザーごとにこのツールで行を生成し、既存の .htpasswd の末尾に貼り足してください。同じユーザー名の行が重複しないように注意します。
認証が通らない・ダイアログが繰り返し出るときは?
多いのは AuthUserFile のパス間違いです。サーバー上の .htpasswd の絶対パスが正しいか確認してください。また、コピー時に行末へ余分な空白や改行が入っていないか、ユーザー名やハッシュが途中で欠けていないかも見直します。パスワードに全角文字が混ざると環境によって不一致になることがあるため、ASCII(英数字と記号)の範囲がおすすめです。
ハッシュはコマンドの htpasswd と同じものですか?
はい。本ツールの出力は htpasswd コマンドや openssl passwd の結果と一致することを検証しています。ソルトが毎回変わるため文字列自体は変わりますが、認証結果は同じです。
パスワードだけを強く作りたいときは?
Basic認証に限らず一般的な強いパスワードが欲しいときは、パスワード生成や、作ったパスワードの強さを測るパスワード強度チェックもあわせてご利用ください。
Basic認証は、会員システムを作るほどではないけれど「ちょっと隠しておきたい」ページに手軽で便利です。パスワードを外部に送らずに .htpasswd の1行を作れるので、テスト環境の保護や社内向けページの目隠しに、まずは気軽に試してみてください。