Apache 用户认证

Apache 用户认证

平常工作中,有必要对一些特定的页面做用户认证,就是登录进去的时候,要先输入用户名和密码才可以进入,这样做比较安全。
那么用户认证怎么做呢?具体操作见下图,
Apache 用户认证
输入命令 cat /usr/local/apache2.4/conf/extra/httpd-vhosts.conf,查看文件内容,确定更改第二个 VirtualHost 虚拟主机,因为第一个虚拟主机是默认虚拟主机,先不管它。接着输入命令 vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf,回车,见下图,
Apache 用户认证
插入上图红色框框的内容,保存并退出。
VirtualHost 的内容如下:
<VirtualHost *:80>
DocumentRoot "/data/wwwroot/www.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>
</VirtualHost>

接下来输入命令 /usr/local/apache2.4/bin/htpasswd -c -m /data/.htpasswd lys ,回车,见下图,
Apache 用户认证
用 -c 来创建密码文件,-m 指定密码类型为md5加密,lys 直接增加用户lys。来查看一下文件 /data/.htpasswd,见下图,
Apache 用户认证
可以看到文件里面有一堆乱码,前面是用户名 lys,后面是密码,这是因为用 -m 设置的md5加密的密码。接着第二次创建用户 lys2,见下图,
Apache 用户认证
这次的命令就不用加 -c 选项了,然后查看文件 /data/.htpasswd ,可以看到多了一行,用户名是 lys2。
以上就是创建用户的过程,接下来,重新加载一下配置文件,
Apache 用户认证
开始做测试,输入命令 curl -x127.0.0.1:80 111.com,回车,见下图,
Apache 用户认证
提示了401错误,说明访问的内容需要做用户认证。使用命令 curl -x127.0.0.1:80 111.com -I,回车,可以看到提示 WWW-Authenticate: Basic realm="111.com user auth"。我们也可以在浏览器上登录,先在Windows的hosts上添加网站 111.com,见下图,
Apache 用户认证
保存,然后到浏览器上,访问 111.com,见下图,
Apache 用户认证
就可以看到,登录需要用户名和密码。接着输入用户名 lys 和密码,见下图,
Apache 用户认证
点击登录,就进入下图,
Apache 用户认证
以上就是用户认证。那么 curl 要怎么输入用户名和密码呢?输入命令 curl -x127.0.0.1:80 -ulys:Ilovexm/520@. 111.com -I,回车,见下图,
Apache 用户认证
这样就进入了,格式为 -u用户名:密码,状态码为 200,就是正常状态。如果输错密码,就是下图的状态,
Apache 用户认证
状态码又变成 401 了。

关于用户认证还有另外一个需求,
Apache 用户认证

假设后台访问的地址是 admin.php ,就可以针对 这个 admin.php 做访问认证。这边使用的是 FileMatch,意思为匹配到 admin.php 的时候,才会执行下面那些命令。现在就来改一下配置文件,输入命令 vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf,回车,见下图,
Apache 用户认证
更改了上图红色框框的内容,保存并退出。重新加载配置文件,
Apache 用户认证
然后还要编译 123.php 文件,输入命令 vim /data/wwwroot/111.com/123.php,回车,见下图,
Apache 用户认证
输入上图内容,保存并退出。echo 就是原文输出的意思。接着做测试,输入命令 !curl ,回车,见下图,
Apache 用户认证
一开始访问 111.com 的密码是错的也可以进入,说明不需要密码就可以访问。接着访问 123.php 的时候,就开始报错 401,这是因为刚刚针对 123.php 做了用户认证的限制。需要输入用户名和密码,输入命令 curl -x127.0.0.1:80 111.com/123.php -ulys:Ilovexm/520@. -I,回车,见下图,
Apache 用户认证
输入用户名和密码之后,就可以访问了。

以上就是用户认证,当有些内容不想让别人访问的时候,就需要加上用户认证。

转载于:https://blog.51cto.com/13503302/2115585

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值