apache用户认证

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了apache用户认证相关的知识,希望对你有一定的参考价值。

vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf //把123.com那个虚拟主机编辑成如下内容,第一个是默认主机,我们修改的是第二个

<VirtualHost *:80>
    DocumentRoot "/data/wwwroot/111.com"
    ServerName 111.com
    ServerAlias www.111.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_log"
    CustomLog "logs/111.com-access_log" common
</VirtualHost>

/usr/local/apache2.4/bin/htpasswd -cm /data/.htpasswd apache //创建并指定密码文件所在位置并增加用户名apache -m是指密码MD5加密 之后创建用户不需要加-c,因为第一次已创建文件
/usr/local/apache2.4/bin/apachectl –t //测试语法
/usr/local/apache2.4/bin/apachectl graceful //重新加载配置文件,不会重启服务

绑定Windows的hosts,浏览器测试
技术分享图片

curl -x127.0.0.1:80 www.111.com //状态码为401(401是指需要用户密码验证)
curl -x127.0.0.1:80 -uapache:111111 www.111.com //状态码为200(200为正常) -u后面的:跟密码

用户认证根据单个文件
还可以针对单个文件进行认证

<VirtualHost *:80>
    DocumentRoot "/data/wwwroot/111.com"
    ServerName 111.com
    <FilesMatch admin.php>    //admin.php就是单个文件的文件名
        AllowOverride AuthConfig
        AuthName "111.com user auth"
        AuthType Basic
        AuthUserFile /data/.htpasswd
        require valid-user
    </FilesMatch>
</VirtualHost>

以上是关于apache用户认证的主要内容,如果未能解决你的问题,请参考以下文章

Django REST框架--认证和权限

Apache Shiro 使用手册Shiro 认证

Express实战 - 应用案例- realworld-API - 路由设计 - mongoose - 数据验证 - 密码加密 - 登录接口 - 身份认证 - token - 增删改查API(代码片段

关闭 apache 的用户认证

apache用户认证域名跳转

Apache用户认证