httpd的用户认证

2018-11-16 15:24:51 3331

httpd的用户认证


配置用户认证

  • 编辑httpd配置文件/usr/local/apache2.4/conf/httpd.conf

    [root@localhost ~]# vim /usr/local/apache2.4/conf/httpd.conf
    <Directory "/usr/local/apache2.4/htdocs/">
    ......
    #将AllowOverride后面的None改成AuthConfig
    #AllowOverride None
    #添加下面几行内容:
    Allowoverride AuthConfig
    #打开用户认证的开关
    AuthName "landui.com user auth"
    #登录时提示内容,作用不大
    AuthType Basic
    #认证方式,一般为Basic
    AuthUserFile /data/.htpasswd
    #指定密码文件的位置(密码文件需手动添加)
    require valid-user
    #设定需要认证的用户,valid-user为“AuthUserFile”中定义的所有用户
    </Directory>

  • 创建httpd.conf 中指定的密码文件

    [root@localhost ~]# /usr/local/apache2.4/bin/htpasswd -c -m /data/.htpasswd huang 
    New password: 
    Re-type new password: 
    Adding password for user huang
    [root@localhost ~]# cat /data/.htpasswd 
    huang:$apr1$4M2zku4l$pny2EUPn6ouM7wjqHCaj.0

    -c创建文件,-m使用md5加密。只有在第一次创建文件时才使用-c参数。创建其它用户也要通过htpasswd命令创建。

  • 配置完成后重新加载

    [root@localhost ~]# /usr/local/apache2.4/bin/apachectl -t
    Syntax OK
    [root@localhost ~]# /usr/local/apache2.4/bin/apachectl graceful

  • 测试

    [root@localhost ~]# curl -x192.168.159.128:80 111.com -I
    HTTP/1.1 401 Unauthorized
    Date: Wed, 20 Dec 2017 07:33:15 GMT
    Server: Apache/2.4.29 (Unix) PHP/7.1.6
    WWW-Authenticate: Basic realm="111.com user auth"
    Content-Type: text/html; charset=iso-8859-1

    提示状态码为“401”,说明当前访问的内容需要进行用户认证。111.com为任意地址,因为配置文件中SeverName www.landui.com:80。

    使用用户名和密码访问:
    [root@localhost ~]# curl -x192.168.159.128:80 -uhuang:159820 111.com -I
    HTTP/1.1 200 OK
    Date: Wed, 20 Dec 2017 08:53:27 GMT
    Server: Apache/2.4.29 (Unix) PHP/7.1.6
    Last-Modified: Mon, 11 Jun 2007 18:53:14 GMT
    ETag: "2d-432a5e4a73a80"
    Accept-Ranges: bytes
    Content-Length: 45
    Content-Type: text/html

    状态码为200,访问成功。其中用户名密码格式为 -u用户名:密码。

用浏览器测试:访问地址,会提示输入账号密码。输入账号密码后即可访问。

提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题: