[ Top > FreeBSD > Web ServerでBasic認証 ]

Web ServerでBasic認証(アクセス認証ページを作る)

2016年10月8日

apache 2.4の場合

パスワード入りのページを作ります。

rootになってユーザー名とパスワードを決めます。webの閲覧ユーザーが読みに行けない場所(任意)にパスワードファイル .htpasswd を作ります。

 # htpasswd -c -b /etc/.htpasswd user password
  password for user:
  Adding password for user user

httpd.conf に basic認証の設定をおこないます。

viなどで編集します。

最終行に以下を追加します。

<Directory "/usr/local/www/secret/">
        #  ↑ 秘密にしたい内容が入っているディレクトリ
AuthUserFile /etc/.htpasswd
        #  ↑ パスワードファイル
AuthGroupFile /dev/null
AuthName "Basic Auth"
        # ↑ ブラウザでアクセスしようとするときに出すメッセージ AuthType Basic
Require valid-user
</Directory>

Apache を再起動すると設定が反映されます。

  # apachectl restart

目的のページにブラウザでアクセスするとユーザーとパスワードを求められます。


参考:古いapacheの場合

基本的にはapacheの基本設定ファイルであるhttpd.confに設定するが,小規模な変更であるので,このhttpd.confではなく,この「子分」のファイルである
/usr/local/etc/apache22/Includes/basic.conf
に設定をおこなう.

説明
apache2.2を例にとると,メインの設定ファイルは
/usr/local/etc/apache22/httpd.conf
である.
このファイルの最後の行には
Include etc/apache22/Includes/*.conf
とあるが,これは,
httpd.confがディレクトリ /usr/local/etc/apache22/Includes にある*.confの設定もまとめて有効にしますよ
という意味である.

以下のようにファイル
/usr/local/etc/apache22/Includes/basic.conf
をroot権限で作る.

#ここから---------------------------------------------------------------
<Directory "/usr/local/www/apache22/data/myhomepage/secret"> 
    # アクセス制限をしたいディレクトリ.ここではsecretという名前にする.
AuthUserFile /usr/local/etc/apache22/Includes/basic-htpasswd 
    # パスワードファイル名はbasic-htpasswd
AuthGroupFile /dev/null
AuthName "secret page" 
    # ブラウザでアクセスしようとするときに出すメッセージ
AuthType Basic
REQUIRE valid-user
</Directory>
#ここまで---------------------------------------------------------------

コマンドhtpasswdを使ってパスワードファイルを作る.ここではユーザーmasayaに対するパスワードファイルbasic-htpasswdを作る.

# cd /usr/local/etc/apache22/Includes
# htpasswd -c basic-htpasswd masaya
New password:
Re-type password:
Adding password for user masaya
#

オプションの-cは初めてパスワードファイルという合図である.2人目からは-cはつけてはならない(つけるとパスワードファイルが上書きされて新たに作られてしまう).

apacheを再起動する.

# apachectl restart

当該のページにアクセスしようとすると,認証画面が出る.


[ Top > FreeBSD > Web ServerでBasic認証 ]