apache2でダイジェスト認証 Ubuntu14.04
Ubuntu14.04 (apache2.4.7) でやってみたのでメモ書き
1 htdigestのインストール
$ sudo apt-get install apache2-utils #新規でインストール
2 Apache2のDigest認証のモジュール(mod_auth_digestモジュール)を有効にする
$ sudo a2enmod auth_digest
3 認証に使うユーザー名とパスワードを作成
htdigest オプション パスワードファイル名 領域名 ユーザー名(書式)となるので、これで作成
$ sudo htdigest -c “/etc/apache2/.digestpass” “realm名” “ユーザ名”
パスワードを入力するように出るので、パスワードを入力して設定
ファイルが出来ているかを確認
$ sudo cat /etc/apache2/.digestpass
#realm名は、AuthNameと合わせる ユーザ名は、epgrecログイン時に使用するユーザー名
初めてパスワードファイルを作るときは -c オプションを指定
4 epgrec閲覧時に認証されるように設定ファイルを作成 例として httpd.confと言う名で作成する
$ cd /etc/apache2/sites-available
$ sudo cp 000-default.conf httpd.conf #元ファイルをコピー
$ sudo gedit /etc/apache2/sites-available/httpd.conf
Ubuntuの場合は、設定ファイルは/etc/apache2/sites-available/000-default.conf のようだ。
コピーしてから修正していくのが基本らしいということで、httpd.confにコピーして修正
下記は一番下 #でコメントアウトされているvimの行より下の最終行に追加
<Directory “/var/www/html/○○○/epgrec”> #認証させたい階層まで書く
AuthType Digest
AuthName “epgrec”
AuthDigestDomain /epgrec/
AuthUserFile /etc/apache2/.digestpass
Require valid-user
</Directory>
5 新しい設定ファイルを有効にする
$ cd /etc/apache2/sites-available
$ sudo a2ensite #対話形式で聞かれる
Which site(s) do you want to enable (wildcards ok)? と表示されたのでhttpd と入力
(先ほど作成した設定ファイルを指定)
Enabling site httpd.
To activate the new configuration, you need to run:
service apache2 reload と表示されればOK
6 Apacheに設定ファイルを読み込ませ、再起動する
$ sudo service apache2 restart
これで、設定完了
と思ったら、エラーが出る
Ah0058: apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.0.1 for ServerName
とか表示された。
hostsにlocalhost以外の自分で設定したホスト名が設定がされてないと言うことらしい。
$ sudo gedit /etc/apache2/sites-available/httpd.conf
<virtualHost>と</virtualHost>の中にあるコメントアウトされているServerName を有効にして、使用するホスト名を記述
エラーが出るので、更に
$ sudo gedit /etc/hosts
127.0.0.1 localhost とあるのを 127.0.0.1 ホスト名 localhost のようにホスト名を追加
まだ、エラーが出るので、
$ sudo gedit /etc/apache2/apache2.conf
ServerName ホスト名 を追記
これで、ようやくエラーが出なくなった
ウエブブラウザから、epgrecに接続しようとすると認証画面が表示された。