Apache用户认证
1、编辑文件
[[email protected] ~]# vi /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
#打开网页时,让你输入Apache认证的用户名,密码
<VirtualHost *:80>
DocumentRoot "/data/wwwroot/111.com"
ServerName 111.com
ServerAlias www.111.com www.example.com
<Directory /data/wwwroot/111.com>
#指定认证的目录
Allowoverride AuthConfig
#该行相当于打开用户认证的开关
AuthName "111.com user auth"
#自定义认证的名字
AuthType Basic
#认证类型,一般为basic
AuthUserFile /data/.htpasswd
#指定密码文件所在位置(需要手动添加)
require valid-user
#设定需要认证的用户为“AuthUserFile”中定义的所有可用用户
</Directory>
ErrorLog "logs/111.com-error_log"
CustomLog "logs/111.com-access_log" common
</VirtualHost>
2、创建认证的用户名(shenjie),密码(自己输入)
htpasswd 第一次创建输入 -c
第二次就只输入 -m
[[email protected] ~]# /usr/local/apache2.4/bin/htpasswd -c -m /data/.htpasswd shenjie
New password:
Re-type new password:
Adding password for user shenjie
3、[[email protected] ~]# /usr/local/apache2.4/bin/apachectl graceful
4、更改window下的hosts
192.168.3.74 www.111.com
5、访问
6、输入认证的用户密码报错
7、查看错误日志
提示说权限问题
[[email protected] data]# chmod 755 .htpasswd
8、再次访问
htpasswd 用法如下:
-c:=create,创建一个加密文件
-n:不更新加密文件,只将更新后的用户名密码显示在屏幕上
-m:使用MD5算法对密码进行加密(默认)
-d:使用CRYPT算法对密码进行加密
-p:不对密码进行加密,即明文密码
-s:使用SHA算法对密码进行加密
-b:在命令行一并输入用户名和密码,而不是根据提示输入密码
-D:删除指定用户