UbuntuでApacheのDigest認証をやってみる
Digest認証はパスワードが暗号化されるので、インターネットで公開するようなサイトでも安心して使用できる。UbuntuでApacheのDigest認証の設定方法をメモしておく。
1.認証が必要となるディレクトリを作成する
$ sudo mkdir -p /var/www/dgt-himitu
2.認証に使うユーザーとパスワードを作る
- ユーザー名: bar
- パスワード: passwd
- パスワードファイルのフルパス: /etc/apache2/.htdigest
$ sudo htdigest -c /etc/apache2/.htdigest 'HIMITU Zone' bar Adding password for bar in realm HIMITU Zone. New password: Re-type new password:
初めてパスワードファイルを作るときは -c オプションを指定する。
3.Apacheの設定ファイルに追加する
http://localhost/dgt-himitu を閲覧したとき、認証されるように設定ファイルに下記を追加する。
<Directory "/var/www/dgt-himitu"> AuthType Digest AuthName "HIMITU Zone" AuthDigestDomain /dgt-himitu/ AuthUserFile /etc/apache2/.htdigest Require valid-user </Directory>
- AuthName: 領域名を定義する。領域名が同じならば、画面が変わっても認証されたことになり認証画面は表示されない。
- AuthUserFile: パスワードファイルの場所をフルパスで指定する
- Require valid-user: 認証されたユーザのみ閲覧可能とする
Ubuntuの場合、インストール直後は、設定ファイルは/etc/apache2/sites-available/defaultなのでコピーしてから修正していくと便利。ここでは mysite2 にコピーする。
$ cd /etc/apache2/sites-available $ sudo cp default mysite2 $ sudo vi /etc/apache2/sites-available/mysite2 <VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot /var/www <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> <Directory "/var/www/dgt-himitu"> AuthType Digest AuthName "HIMITU Zone" AuthDigestDomain /dgt-himitu/ AuthUserFile /etc/apache2/.htdigest Require valid-user </Directory> ErrorLog /var/log/apache2/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog /var/log/apache2/access.log combined </VirtualHost>
設定ファイル /etc/apache2/sites-available/default を無効にする
$ sudo a2dissite default
新しい設定ファイル /etc/apache2/sites-available/mysite2 を有効にする
$ sudo a2ensite mysite2
mod_auth_digestモジュールを有効にする
$ sudo a2enmod auth_digest Enabling module auth_digest. Run '/etc/init.d/apache2 restart' to activate new configuration!
Apacheに設定ファイルを読み込ませ、再起動する
$ sudo /etc/init.d/apache2 reload
mod_auth_digestモジュールが有効になっていないと下記メッセージが表示されてApache起動に失敗する。
$ sudo /etc/init.d/apache2 reload Syntax error on line 19 of /etc/apache2/sites-enabled/mysite2: Invalid command 'AuthDigestDomain', perhaps misspelled or defined by a module not included in the server configuration ...fail!
4.ブラウザで動作確認
Firefoxで http://localhost/dgt-himitu をアクセスすると、認証画面が開く。
参考にしたサイト
【送料無料】Apacheセキュリティ |