1、为了实现安全的登陆机制,使用基于basic的认证登陆;
2、认证方式有两种:基于basic明文的认证(以后配合https可以实现加密认证);digest消息摘要认证,此认证兼容性差,目前基本上都不使用了;
3、虚拟账号:仅用于访问某特定服务时的认证标识;
4、虚拟账号可以存放在文本文件中,也可以放在比较安全非SQL数据库中,,,,,,,;
5、生成虚拟用户工具:htpasswd;来自httpd-tools包,(使用前可以先检查一下包是否安装);
格式:htpasswd [options] /PATH/HTTPD_PASSWD_FILE username
选项:
-c:自动创建文件,仅应该在文件不存在时使用 ------》若创建多个账号,第一次创建时加上-c,以后就不需要加了
-m: md5格式加密 -----》默认的加密方式
-s: sha格式加密
-D:删除指定用户
1、建一个secrettest测试文件;
[root@Centos6 /app]# mkdir secrettest
[root@Centos6 /app]# echo "hello,weclome to my secret base" > secrettest/index.html
2、、定义配置文件;
[root@Centos6 /app]# vim /etc/httpd/conf.d/test.conf #在子配置文件中定义
authname "Secret DIR" #弹框提示符(用火狐浏览器可以看到)
authtype basic #验证类型 basic
authuserfile /etc/httpd/conf.d/.httpusers #指明虚拟用户的存放路径,一般为了安全,可以放在一个隐藏文件中
require user http1 http3 #在/etc/httpd/conf.d/.httpusers定义的用户中允许通过验证的用户;允许所有用户Require valid-user
3、使用特定命令生成虚拟用户;
[root@Centos6 /app]# htpasswd -c /etc/httpd/conf.d/.httpusers http1 #创建第一个用户,文件还没有生成,所以需要加上-c指定生成文件
New password: #回车后要在此处输入密码;
Re-type new password: #重复输入上面的密码;
Adding password for user http1
[root@Centos6 /app]# htpasswd -s /etc/httpd/conf.d/.httpusers http2 #创建第二个用户,不需要-c选项;-s是用sha加密方式
New password:
Re-type new password:
Adding password for user http2
[root@Centos6 /app]# htpasswd -m /etc/httpd/conf.d/.httpusers http3 #创建第三个用户,-m使用md5加密方式,其实默认的就是md5加密
New password:
Re-type new password:
Adding password for user http3
[root@Centos6 /app]# cat /etc/httpd/conf.d/.httpusers #查看一下虚拟用户是否创建成功
http1:8GqhwrSVFG4eM
http2:{SHA}AAXfhrY/nwrcGaafjs69saZnPt4=
http3:$apr1$YzZRNDmP$HXYxM.HfSpVX0ENS9Z/S/0
[root@Centos6 /app]#
[root@Centos6 /app]# service httpd restart #重启服务
[root@Centos6 /app]# vim /etc/httpd/conf.d/test.conf
authname "Secret DIR"
authtype basic
authuserfile /etc/httpd/conf.d/.httpusers
authgroupfile /etc/httpd/conf.d/.httgroups #在之前的基础上,加上了关于组存放的文件路径(此文件需要自己手工创建)
require group httpgroup1 #这里改成允许访问的组
2、定义组存放的文件;
[root@Centos6 /app]# vim /etc/httpd/conf.d/.httpgroups
httpgroup1:http1 http2
httpgroup2:http1 http3
[root@Centos6 /app]# service httpd restart #重启服务
1、要有修改配置文件的操作,建议在其子配置文件中定义,尽量不要动主配置文件;
2、切记,只要是修改了配置文件,就一定要重启httpd服务使其生效;