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に接続しようとすると認証画面が表示された。

Leave a comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


 

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)