标签:basic认证
前提:清除防火墙和selinux策略
iptables -F ; setenforce 0
basic认证配置示例:
一、基于用户认证:
(1) 定义安全域
<Directory “/var/www/html/secret ">
AuthType Basic 认证方式
AuthName "String“ 提示信息
AuthUserFile "/etc/httpd/conf.d/.htusers" 存放用户的文件(利用htpasswd生成,下面有示例)
Require user http1 http2 ... 定义允许访问的用户
</Directory>
允许账号文件中的所有用户登录访问:Require valid-user
或者把directory里的四行内容写到需要认证的目录下的文件(/var/www/html/secret/.htaccess),
然后在配置文件里写上AllowOverride authconfig(允许安全认证),如下所示
vim /var/www/html/secret/.htaccess
authtype basic
authname "tingjie dir"
uthuserfile "/etc/httpd/conf.d/.htusers"
require user http1 http2
vim /etc/httpd/conf/httpd.conf
<directory "/var/www/html/secret">
AllowOverride authconfig
</directory>
(2) 提供账号和密码存储(文本文件)
使用专用命令完成此类文件的创建及用户管理
htpasswd [options] /PATH/HTTPD_PASSWD_FILE username
-c:自动创建文件,仅应该在文件不存在时使用
-m:md5格式加密,默认方式
-s: sha格式加密
-D:删除指定用户
比如创建http1,http2,http3用户,并分别设置密码
(3)重新加载服务service httpd reload
测试:在linux上测试如下:
curl http://192.168.119.129/secret/
在Windows上测试如下:
http://192.168.119.129/secret/,弹出如下用户认证界面,只有http1和http2能访问,http3不能
二、基于组账号进行认证
(1) 定义安全域
<Directory “/path">
AuthType Basic
AuthName "String“
AuthUserFile "/PATH/HTTPD_USER_PASSWD_FILE"
AuthGroupFile "/PATH/HTTPD_GROUP_FILE"
Require group grpname1 grpname2 ...
</Directory>
具体示例如下图所示,允许group1组的用户访问
(2) 创建用户账号和组账号文件
组文件:每一行定义一个组
GRP_NAME: username1 username2 ...
vim /etc/httpd/conf.d/.htgroup
group1:http1 http2
group2:http3
(3)重新加载服务service httpd reload
(4)测试方法同上(结果:http3不能访问,http1和http2可以访问)
说明:basic认证是明文的,不安全,可以配合安全的https来使用。https的实现请参看博文:
标签:basic认证
原文地址:http://13150617.blog.51cto.com/13140617/1974366