開発者ツール / 24

Apache / Nginx .htpasswd 生成ツール

ApacheとNginxの.htpasswd認証行とパスワードハッシュをクライアント側メモリで生成します。

Apache / Nginx .htpasswd 生成ツール: TOEAはHTTP Basic認証でApacheとnginxが期待する行を書き出します。デフォルトはApacheの$apr1$形式で、パスワードに8文字のランダムなソルトを付与し、1000回のラウンドで反復します。これはhtpasswd -mが生成し、両サーバーが読み取る形式です。 サーバーへのファイルアップロードは一切なく、100%ブラウザ内でローカル実行します。

カテゴリ
開発者ツール
実行回数
ブラウザ内で
コスト
無料 · 登録不要
提供状況
すぐに使えます

行をサーバーに組み込む

行はWebルートの外にあるファイルへ、1行につき1つのuser:hashとして保存してください。nginxでは、locationまたはserverブロックにauth_basic "Restricted";とauth_basic_user_file /etc/nginx/.htpasswd;を追加します。Apacheでは、ファイルの完全なパスを指定したAuthType Basic、AuthName、AuthUserFileとRequire valid-userを使用します。その後サーバーをリロードしてください。構文エラーがあると、ログインだけでなくすべてのリクエストが失敗します。

ドル記号と平文HTTP

ハッシュには$文字が多数含まれます。Docker Composeファイル、.envファイル、一部のプロキシラベルでは、$を変数の開始として扱います。Composeでは各$を$$と記述してください。そうしないとハッシュがひそかに短くなり、どのパスワードも一致しなくなります。

Basic認証は、ユーザー名とパスワードをエンコードしますが暗号化せず、すべてのリクエストで送信します。HTTPSの背後に置き、顧客向けのログインシステムではなく、ステージングサイトや管理者用パスの入口として扱ってください。

使い方

  1. ユーザー名とパスワードを入力します。
  2. 特別な理由がなければアルゴリズムはApache MD5のままにします。
  3. .htpasswdファイルに生成された行をコピーします。

プライバシーと制限事項

パスワードはブラウザ内でハッシュ化され、どこにも送信されません。何もログに記録しません。ソルトはブラウザ自身の暗号学的乱数ソースから生成されるため、同じパスワードで行を生成しても、2人で同じハッシュにはなりません。

関連ツール

よくある質問

どのアルゴリズムを選べばよいですか?

Apache MD5 ($apr1$)です。ここでのデフォルトで、ソルト付きかつ反復され、Apacheとnginxの両方が受け付けます。{SHA}オプションはソルトなしのSHA-1ダイジェストで、これを必要とする古い環境のためだけに残しています。Apache純正のhtpasswdツールでもこのオプションは安全ではないと明記されています。なぜなら同一のパスワードは同一のハッシュになり、ルックアップテーブルで破られるためです。

これはbcryptと同等の強度ですか?

いいえ。bcryptの方が強力でApacheもサポートしていますが、ここでは生成できません。Blowfish実装が必要で、配布と信頼のために大きなコード量を要するためです。bcryptを使う場合は、ローカルでhtpasswd -B -n usernameを実行し、結果を貼り付けてください。

使う前に行を検証できますか?

はい、推奨します。ファイルに保存してからhtpasswd -vb yourfile username passwordを実行してください。Apacheが認証可否を返します。これらの行は、htpasswdおよびopenssl passwd -apr1の両方で検証されています。

無料ツール · ブラウザ内で · アカウント不要