Webページパスワード制限(htpasswd)

最終更新日: 2017.05.24

<<トップページ <<新着情報 <<逆引き集 <<リンク集 <<サイト内検索 <<メルマガ <<Scientific Linuxで自宅サーバー構築 <<Fedoraで自宅サーバー構築

■概要

Webページへのアクセスにユーザー名とパスワードによるアクセス制限をかける。
ここでは、https://centossrv.com/secret/以下のWebページへユーザー名(centosとする)とパスワード(centospassとする)によるアクセス制限をかけるようにする。
なお、htpasswdによるユーザー名、パスワード情報はほぼ平文でネットワーク上を流れるため、盗聴に備えてSSL経由でしかアクセスできないようにする。

WebサーバーWebサーバー間通信内容暗号化が導入済であること


■Webサーバー設定

[root@centos ~]# vi /etc/httpd/conf/httpd.conf ← Webサーバー設定ファイル編集
<Directory "/var/www/html">

#
# Possible values for the Options directive are "None", "All",
# or any combination of:
#   Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
#
# Note that "MultiViews" must be named *explicitly* --- "Options All"
# doesn't give it to you.
#
# The Options directive is both complicated and important.  Please see
# http://httpd.apache.org/docs-2.0/mod/core.html#options
# for more information.
#
    Options Includes ExecCGI FollowSymLinks

#
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
#   Options FileInfo AuthConfig Limit
#
    AllowOverride All ← Allにする(.htaccessを許可)

[root@centos ~]# systemctl reload httpd ← Webサーバー設定反映※CentOS7の場合
[root@centos ~]# /etc/rc.d/init.d/httpd reload ← Webサーバー設定反映※CentOS6の場合
httpd を再読み込み中:                                      [  OK  ]

■.htpasswdファイル作成

(1).htpasswdファイルを新規作成する場合
[root@centos ~]# htpasswd -b -c -m /etc/httpd/conf/.htpasswd centos centospassos ← .htpasswdを作成してユーザーcentosを登録する
Adding password for user centos

(2)既存の.htpasswdファイルへユーザーを追加する場合
[root@centos ~]# htpasswd -b -m /etc/httpd/conf/.htpasswd centos centospassos ← 既存の.htpasswdへユーザーcentosを登録する
Adding password for user centos

(3)ユーザー登録確認
[root@centos ~]# cat /etc/httpd/conf/.htpasswd ← ユーザー登録確認
centos:vYwnFfo59lI/c

■Webページパスワード制限確認

(1)テスト用ディレクトリ、ページ作成
[root@centos ~]# mkdir /var/www/html/secret ← テスト用ディレクトリ作成

[root@centos ~]# echo test > /var/www/html/secret/index.html ← テスト用ページ作成

(2).htaccessファイル作成
.htpasswdに登録してある全てのユーザー名で認証できるようにする場合
[root@centos ~]# vi /var/www/html/secret/.htaccess ← テスト用ディレクトリに.htaccess作成
SSLRequireSSL
AuthUserFile /etc/httpd/conf/.htpasswd
AuthGroupFile /dev/null
AuthName "secret page"
AuthType Basic
require valid-user

(3).htaccessファイル作成
.htpasswdに登録してある特定のユーザー名(ここでは、認証を許可するユーザー名をcentosとする)でのみ認証できるようにする場合
[root@centos ~]# vi /var/www/html/secret/.htaccess ← テスト用ディレクトリに.htaccess作成
SSLRequireSSL
AuthUserFile /etc/httpd/conf/.htpasswd
AuthGroupFile /dev/null
AuthName "secret page"
AuthType Basic
require user centos ← 認証を許可するユーザー名を指定

(4)ユーザー認証確認
https://サーバー名/secret/にアクセスしてユーザー認証画面が表示され、ユーザー名、パスワードに.htpasswdファイルへ登録したユーザー名、パスワードを入力してテストページが表示されることを確認。

・非SSL(http://サーバー名/secret/)でアクセスした場合、ユーザー認証画面が表示されずにエラーとなることを確認。

・htpasswd内の特定ユーザー名のみ認証を許可している場合、特定ユーザー以外ではエラーとなることを確認。

(5)Webページパスワード制限確認後始末
[root@centos ~]# rm -rf /var/www/html/secret/ ← テスト用ディレクトリ削除

[root@centos ~]# rm -f /etc/httpd/conf/.htpasswd ← テスト用.htpasswd削除






▲このページのトップへ戻る

LPIロゴ Copyright© 2005-2017 fallenangels, All rights reserved.
ご自由にリンクしてください(連絡は不要です)
本ページへのご意見・ご要望、誤字・脱字・リンク切れ等のご連絡はこちらからお願いします