LAMP架构——Apache用户认证

在配置之前先要了解htpasswd

  • 命令描述
    htpasswd命令是Apache的Web服务器内置工具,用于创建和更新储存用户名、域和用户基本认证的密码文件。

  • 命令语法
    htpasswd [option] [参数]

  • 命令选项
    -c:=create,创建一个加密文件
    -n:不更新加密文件,只将更新后的用户名密码显示在屏幕上
    -m:使用MD5算法对密码进行加密(默认)
    -d:使用CRYPT算法对密码进行加密
    -p:不对密码进行加密,即明文密码
    -s:使用SHA算法对密码进行加密
    -b:在命令行一并输入用户名和密码,而不是根据提示输入密码
    -D:删除指定用户


步骤如下

1,编辑虚拟主机配置文件
[root@dl-001 ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
<VirtualHost *:80>
    DocumentRoot "/data/wwwroot/111.com"
    ServerName 111.com
    ServerAlias www.example.com
    <Directory /data/wwwroot/111.com>   //指定认证的目录  
        AllowOverride AuthConfig        //这个相当于打开认证的开关
        AuthName "111.com user auth"    //自定义认证的名字,作用不大
        AuthType Basic          //认证的类型,一般为Basic
        AuthUserFile /data/.htpasswd  //指定密码文件所在位置
        require valid-user      //指定需要认证的用户为全部可用用户
    </Directory>
    ErrorLog "logs/111.com-error_logo"
    CustomLog "logs/111.com-access_log" common
</VirtualHost>

说明:在配置的时候最好把说明去除,以防报错


2,创建“httpd-vhosts.conf”中指定的密码文件
[root@dl-001 wwwroot]# /usr/local/apache2.4/bin/htpasswd -c -m /data/.htpasswd dl
New password: 
Re-type new password: 
Adding password for user dl
[root@dl-001 wwwroot]# cat /data/.htpasswd
dl:$apr1$QaOr7opI$AfAGBv1/utJws62.S/sbl.

说明:在“/data/.htpasswd”为用户dl创建一个使用MD5算法加密的密码文件。


3,重新加载
[root@dl-001 wwwroot]# /usr/local/apache2.4/bin/apachectl -t
Syntax OK
[root@dl-001 wwwroot]# /usr/local/apache2.4/bin/apachectl graceful

4,测试
  • 使用curl进行测试
[root@dl-001 ~]# curl -x192.168.66.128:80 111.com
HTTP/1.1 401 Authorization Required     //说明:因为生成了密码,所以在不指定用户名和密码的情况下会报401错误
Date: Wed, 20 Dec 2017 14:48:52 GMT
Server: Apache/2.2.34 (Unix) DAV/2 PHP/5.6.30
WWW-Authenticate: Basic realm="111.com user auth"
Content-Type: text/html; charset=iso-8859-1
[root@dl-001 ~]# curl -x192.168.8.131:80 -udl:dingle991124 111.com -I    //使用-u指定用户名和密码再次输入
HTTP/1.1 200 OK    
Date: Mon, 31 Jul 2017 02:18:21 GMT
Server: Apache/2.4.27 (Unix) PHP/5.6.30
X-Powered-By: PHP/5.6.30
Content-Type: text/html; charset=UTF-8
  • 使用浏览器测试
    QQ截图20171220230620.png
    说明:输入用户名和密码之后即可访问。

单个文件进行认证

还可以针对单个文件进行认证(单个文件需要输入用户名和密码)

[root@dl-001 ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
<VirtualHost *:80>
    DocumentRoot "/data/wwwroot/www.123.com"
    ServerName www.123.com
    <FilesMatch admin.php>    //针对admin.php
        AllowOverride AuthConfig
        AuthName "123.com user auth"
        AuthType Basic
        AuthUserFile /data/.htpasswd
        require valid-user
    </FilesMatch>
</VirtualHost>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值