ApacheでBasic認証
Apacheで下の様な認証の仕方です。
.htaccess の機能を使います。
httpd.conf 内で対象となるディレクトリ(または自分より親ディレクトリ)でAllowOverride AuthConfig 等になっている必要があります。
「.htaccess」と「.htpasswd」の作成
.htaccess というファイルがディレクトリにあるとそのディレクトリ以下にアクセスする場合有効になります。
まず .htaccess というファイルを認証をかけたいディレクトリ(この場合 himitu )を以下のように作ります。
[testuser@jintaro ~]# cd /home/testuser/public_html/himitu
[testuser@jintaro himitu]# vi .htaccess
AuthType Basic
AuthName "このページは、管理人専用です。"
AuthUserFile /home/testuser/ht/.htpasswd
require valid-user
[testuser@jintaro himitu]# mkdir /home/testuser/ht
[testuser@jintaro himitu]# htpasswd -mc /home/testuser/ht/.htpasswd hoge
New password:
Re-type new password:
Adding password for user hoge
[testuser@jintaro himitu]# cat /home/testuser/ht/.htpasswd
hoge:$apr1$qQPK2...$jR9BPWJCAuCzrKk/ThKqX/
|
←himituディレクトリに移動
←.htaccessファイルを作成
←認証画面に表示する文字
←ユーザーとパスワードの対照表が記されたファイルを指定
←対照表に記載されたすべてのユーザーを許可
←.htpasswdファイル用ディレクトリ作成
←.htpasswdを新規作成(-c)してユーザーhogeを追加
←パスワードを応答
←パスワードを応答(確認用)
←ユーザーhogeの追加完了
←.htpasswdの中身を見てみる
←.htpasswdの中身
|
htpasswd -m(MD5で暗号化) c(ファイルの新規作成) ファイル名 ユーザー名
という構文になります。
二人目からは
htpasswd -m(MD5で暗号化) ファイル名 ユーザー名
という構文になります。
その他
- .htpasswd は違うファイル名でもいいようです。
- 「.ht」で始まるファイルはApacheの初期設定ではwebからアクセス出来ない様になっているみたいですが、
念のため「.htpasswd」はwebからアクセスできないディレクトリ(ドキュメントルートより上のディレクトリ)に置いた方がいいです。
- この場合MD5で暗号化してますが絶対に安全というわけではないので本当に大事なファイルは置かないほうが無難です。
|