本文共 1511 字,大约阅读时间需要 5 分钟。
用户认证功能就是在用户访问网站的时候,需要输入用户名密码才能进行访问。
实例:下面对a.com
站点来做一个全站的用户认证: [root@global ~]# vim /etc/httpd/conf.d/virtual.conf //在a.com虚拟主机下编辑添加以下内容,注意空格,最好手敲。<VirtualHost 172.24.10.59:8090>
DocumentRoot "/var/www/html/a" ServerName a.com <Directory /var/www/html/a> //指定认证的目录 AllowOverride AuthConfig //这个相当于打开认证的开关 AuthName "linuxtest.com user auth" //自定义认证的名字,作用不大 AuthType Basic //认证的类型,一般为Basic AuthUserFile /tmp/.htpasswd //指定密码文件所在位置 require valid-user //指定需要认证的用户为全部可用用户 </Directory>ErrorLog "logs/a.com-error_log"
CustomLog "logs/a.com-access_log" common </VirtualHost>
在创建密码文件先要了解htpasswd命令:
htpasswd命令是Apache的Web服务器内置工具,用于创建和更新储存用户名、域和用户基本认证的密码文件。
语法:
htpasswd [选项] [参数]
选项: -c:=create,创建一个加密文件
-n:不更新加密文件,只将更新后的用户名密码显示在屏幕上 -m:使用MD5算法对密码进行加密(默认) -d:使用CRYPT算法对密码进行加密 -p:不对密码进行加密,即明文密码 -s:使用SHA算法对密码进行加密 -b:在命令行一并输入用户名和密码,而不是根据提示输入密码 -D:删除指定用户
下面创建密码文件:
[root@global ~]# /usr/bin/htpasswd -cm /tmp/.htpasswd global // -c 表示创建 -m 指定MD5加密 指定所在位置 如果再次增加用户可以不用-c选项,-c是首次创建文件使用的,,否则/data/.htpasswd会被重置,之前用户被清空
New password: Re-type new password: Adding password for user global [root@zlinux ~]# httpd -t Syntax OK [root@zlinux ~]# /usr/sbin/apachectl graceful
在浏览器中测试,需要修改下windows下hosts文件,把域名指向Linux机器:
输入账号密码后,始终报下图的错误,通过抓取日志,发下了错误日志,但是没有解决,希望高手指点下!!!
使用curl
进行测试: [root@global conf.d]# curl -x172.24.10.59:8090 a.com -I
HTTP/1.1 401 Unauthorized //说明:因为生成了密码,所以在不指定用户名和密码的情况下会报401错误[root@global conf.d]# curl -x 172.24.10.59:8090 -u global:123456 a.com -I //使用-u指定用户名和密码
转载地址:http://nclof.baihongyu.com/