配置Apache服务的digest摘要认证
TsengYia#126.com 2008-01-04
http://selinux.cublog.cn################################################################
系统环境:RHEL5 [ 2.6.18-8.el5xen ]
软件环境:
httpd-2.2.3-6.el5
目标功能:
针对Apache网站目录或URL位置实现用户访问认证(basic基本认证、digest摘要认证)。
——basic认证、digest认证任选一种即可。
注:以尽量减少对Web服务器性能的影响为出发点,仅在需要认证的目录(Directory)或位置(Location)范围作认证即可,避免在层次结构较复杂的目录(如网站根目录)使用.htaccess文件;如果用户认证的配置不多,可以直接在httpd.conf文件中相关区段进行配置,无需使用单独的.htaccess文件。
################################################################
一、安装httpd软件包
本处以RHEL5光盘自带的rpm包安装,过程略。
在httpd.conf文件中,几个主要认证模块配置如下(默认已配置):
LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule auth_digest_module modules/mod_auth_digest.so
LoadModule authn_file_module modules/mod_authn_file.so
LoadModule authn_dbm_module modules/mod_authn_dbm.so
LoadModule authn_default_module modules/mod_authn_default.so
LoadModule authz_user_module modules/mod_authz_user.so
LoadModule authz_dbm_module modules/mod_authz_dbm.so
LoadModule authz_default_module modules/mod_authz_default.so
二、修改httpd.conf文件,添加对目录或位置的用户验证配置
1、创建网站测试文件
# mkdir -p /var/www/html/auth
# echo "Root Directory." > /var/www/html/index.html
# echo "Auth Directory." > /var/www/html/auth/index.html
2、修改/etc/httpd/conf/httpd.conf文件,确认修改或添加以下内容:
DocumentRoot "/var/www/html"
Options Indexes
AllowOverride AuthConfig #//允许读取.htaccess文件中的认证配置(AuthConfig),其他目录应按默认值None
Order allow,deny
Allow from all
DirectoryIndex index.html index.php
3、启动httpd服务
# /etc/init.d/httpd start
# chkconfig --level 35 httpd on
三、配置基本认证(basic)
方式一:使用文本格式用户数据库
1、创建认证用户数据库文件(文本格式)
# htpasswd -c /etc/httpd/conf/users_txt.pwd admin #//创建文本格式用户文件,同时添加用户admin
# htpasswd /etc/httpd/conf/users_txt.pwd jerry #//在数据库文件中添加用户jerry
2、创建.htaccess配置文件
# vi /var/www/html/auth/.htaccess
AuthName "Private Contents."
AuthType basic
AuthUserFile /etc/httpd/conf/users_txt.pwd
Require admin jerry #//允许用户admin、jerry通过认证后访问,若用户较多,可以改为“Require valid-user”
3、测试
在客户端浏览器(必要时清空缓存)访问,以admin或jerry用户进行认证访问
方式二:使用dbm格式用户数据库(若用户较多,可采用dbm用户数据库以加快检索速度)
1、创建认证用户数据库文件(Berkeley DB格式)
# htdbm -TDB -c /etc/httpd/conf/users_dbm.db kitty #//创建DB格式(其他格式参考man)用户文件,同时添加用户kitty
2、修改.htaccess配置文件
# vi /var/www/html/auth/.htaccess
AuthName "Private Contents."
AuthType basic
AuthBasicProvider dbm
AuthDBMType DB
AuthDBMUserFile "/etc/httpd/conf/users_dbm.db"
Require kitty
3、测试
在客户端浏览器(必要时清空缓存)访问,以kitty用户进行认证访问
四、配置摘要认证(digest)
1、创建digest认证用户数据库文件(文本格式) #//digest认证貌似无法使用dbm用户文件
# htdigest -c /etc/httpd/conf/users_digest.pwd "Private Contents." kenthy
2、修改.htaccess配置文件
AuthName "Private Contents."
AuthType digest
#AuthDigestDomain /auth/ #//在目录区段(Directory)配置digest认证时,此行可有可无
AuthUserFile /etc/httpd/conf/users_digest.pwd
Require kenthy
3、测试
在客户端浏览器(必要时清空缓存)访问,以kenthy用户进行认证访问
******************************** End *********************************
阅读(1105) | 评论(0) | 转发(0) |