ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Apache用户认证

2021-07-26 12:34:20  阅读:252  来源: 互联网

标签:abc com 用户 认证 usr Apache local apache2.4


Apache用户认证

本随笔中的用户认证为打开网站的用户认证,而非页面当中的用户认证。

某些页面用于管理或者指定访问,要配置用户认证来实现,主要目的为了增加网站的安全性。

主要分为两部分,针对整个网站目录进行认证和针对单个文件进行认证

针对整个网站目录的认证

1.修改httpd-vhosts.conf

cd /usr/local/apache2.4/conf/extra/
vim httpd-vhosts.conf  //增加Directory
<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot "/usr/local/apache2.4/docs/abc.com"
    ServerName abc.com
    ServerAlias www.abc.com www.aaa.com
    <Directory /usr/local/apache2.4/docs/abc.com> 
        AllowOverride AuthConfig
        AuthName "abc.com user auth"
        AuthType Basic
        AuthUserFile /usr/local/apache2.4/docs/.htpasswd
        require valid-user
    </Directory>
    ErrorLog "logs/abc.com-error_log"
    CustomLog "logs/abc.com-access_log" common
</VirtualHost>
/usr/local/apache2.4/bin/apachectl -t
/usr/local/apache2.4/bin/apachectl graceful

2.创建认证文件(创建用户名和密码)

/usr/local/apache2.4/bin/htpasswd -cm /usr/local/apache2.4/docs/.htpasswd lhy
输入密码
确认密码

3.测试配置内容

linux测试:

[root@antong abc.com]# curl -xlocalhost:80 abc.com -I
HTTP/1.1 401 Unauthorized      //发生报错,401错误
Date: Mon, 26 Jul 2021 03:59:19 GMT
Server: Apache/2.4.33 (Unix) PHP/5.6.30
WWW-Authenticate: Basic realm="abc.com user auth"
Content-Type: text/html; charset=iso-8859-1

[root@antong abc.com]# curl -xlocalhost:80 -u lhy:000000 abc.com -I //使用-u参数           
HTTP/1.1 200 OK
Date: Mon, 26 Jul 2021 04:01:42 GMT
Server: Apache/2.4.33 (Unix) PHP/5.6.30
Last-Modified: Mon, 26 Jul 2021 02:50:30 GMT
ETag: "8-5c7fdd0f640d5"
Accept-Ranges: bytes
Content-Length: 8
Content-Type: text/html

windows测试:

输入用户名和密码后成功访问。

针对单个文件的认证

修改httpd-vhosts.conf,将Directory修改为FilesMatch

<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot "/usr/local/apache2.4/docs/abc.com"
    ServerName abc.com
    ServerAlias www.abc.com www.aaa.com
    <FilesMatch admin.php>    //Directory变成了FilesMatch
        AllowOverride AuthConfig
        AuthName "123.com user auth"
        AuthType Basic
        AuthUserFile /usr/local/apache2.4/docs/.htpasswd
        require valid-user
    </FilesMatch>
    ErrorLog "logs/abc.com-error_log"
    CustomLog "logs/abc.com-access_log" common
</VirtualHost>
/usr/local/apache2.4/bin/apachectl -t
/usr/local/apache2.4/bin/apachectl graceful

由于是对admin.php限制的认证,所以需要创建admin.php文件以供测试

cd /usr/local/apache2.4/docs/abc.com/
vim admin.php
<?php
echo "abc.com --admin.php";
?>

进行测试:

[root@antong abc.com]# curl -xlocalhost:80 www.abc.com
abc.com

[root@antong abc.com]# curl -xlocalhost:80 abc.com/admin.php -I 
HTTP/1.1 401 Unauthorized           //状态码为401
Date: Mon, 26 Jul 2021 04:22:14 GMT
Server: Apache/2.4.33 (Unix) PHP/5.6.30
WWW-Authenticate: Basic realm="123.com user auth"
Content-Type: text/html; charset=iso-8859-1

[root@antong abc.com]# curl -xlocalhost:80 -u lhy:000000 abc.com/admin.php -I   
HTTP/1.1 200 OK                    //状态码从401变为200
Date: Mon, 26 Jul 2021 04:22:50 GMT
Server: Apache/2.4.33 (Unix) PHP/5.6.30
X-Powered-By: PHP/5.6.30
Content-Type: text/html; charset=UTF-8

标签:abc,com,用户,认证,usr,Apache,local,apache2.4
来源: https://www.cnblogs.com/antong/p/15060891.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有