.htpasswd を使ったベーシック認証の完全ガイド

.htpasswdで手軽にアクセス制限をかけよう
開発中のサイトや管理画面に「簡易パスワード制限」をかけたいとき、最も手軽なのが ベーシック認証 です。
このベーシック認証で使用されるのが .htpasswd
ファイル。ApacheやNginxなどのWebサーバーで利用でき、設定も非常にシンプルです。
この記事では、ALTERNATE tools を活用して、.htpasswd
の作成から設定・運用の流れまでをわかりやすく解説します。
目次
ベーシック認証とは?

Webページにアクセスする際、ユーザー名とパスワードの入力を求める基本的な認証方式です。特定のディレクトリに対して簡単にアクセス制限をかけることができます。
例えば、開発環境や社内用の管理画面など、外部に公開したくないページに対して、ベーシック認証を設定することで不正アクセスを防ぐことができます。
.htpasswdとは?
.htpasswd
は、ベーシック認証で使用する「ユーザー名と暗号化されたパスワード」を記載したファイルです。1行に1ユーザーの認証情報が記録され、以下のような形式になります:
username:$apr1$WnL...vA$Xv4O2p3qp6bZz1YVnECUw1
このパスワードはハッシュ化されており、ALTERNATE toolsの「.htpasswd作成ツール」で簡単に生成できます。
ALTERNATE toolsでの作成手順
- .htpasswd作成ツール を開きます
- ユーザー名とパスワードを入力
- [作成]ボタンを押すと、ハッシュ化された文字列が生成されます
- 表示された文字列をコピーして、
.htpasswd
ファイルに保存します
Apacheでの設定方法
ベーシック認証をかけたいディレクトリに、以下のような .htaccess
ファイルを設置します:
<Files ~ "^.(htpasswd|htaccess)$">
deny from all
</Files>
AuthUserFile 【絶対パス】.htpasswd
AuthGroupFile /dev/null
AuthName "For Members."
AuthType Basic
require valid-user
order deny,allow
AuthUserFile は、.htpasswd
ファイルの絶対パスを指定してください。
▶ AuthUserFileの絶対パスを調べる方法
Nginxでの設定例
Nginxを使用している場合は、auth_basic
と auth_basic_user_file
ディレクティブを使います:
location /secure/ {
auth_basic "Restricted Area";
auth_basic_user_file /etc/nginx/.htpasswd;
}
設定後は nginx -t
で構文を確認し、nginx -s reload
で再起動してください。
セキュリティ上の注意
.htpasswd
や.htaccess
はWebから直接アクセスできないようにしてください- パーミッションを
600
または640
に設定するのが望ましいです - 本格的な認証が必要な場合は、ベーシック認証ではなくOAuthやトークン認証を検討しましょう
エラーが出るときのチェックポイント
AuthUserFile
のパスが絶対パスか?- Apacheの
AllowOverride
設定で.htaccess
が有効か? - パスワードが平文になっていないか?(必ずハッシュ化)
まとめ
.htpasswd を使えば、特定のページに簡単なアクセス制限を導入できます。
ALTERNATE toolsの作成ツールを使えば、誰でもすぐにベーシック認証を設定可能です。ぜひ業務や開発のセキュリティ強化にご活用ください。