1、简介

对经常上网的用户有时会遇到这种情况:当访问一些网站的某些资源时,浏览器弹出一个对话框,要求输入用户名和密码才能获取资源的访问。实际上,这是用户认证的一种技术。用户认证是保护网络系统资源的第一道防线,它控制着所有登录并检查访问用户的合法性,其目标是仅让合法用户以合法的权限访问网络系统的资源。基本的用户认证技术是“用户名+密码”。


2、Apache的用户认证,基本认证方式Basic配置

(1)Basic 认证是HTTP 中非常简单的认证方式,因为简单,所以不是很安全,不过仍然非常常用。当一个客户端向一个需要认证的HTTP服务器进行数据请求时,如果之前没有认证过,HTTP服务器会返回401状态码,要求客户端输入用户名和密码。用户输入用户名和密码后,用户名和密码会经过BASE64加密附加到请求信息中再次请求HTTP服务器,HTTP服务器会根据请求头携带的认证信息,决定是否认证成功及做出相应的响应。

(2)配置一个本地目录的basic认证:

①创建目录:

1240

②在子配置文件中添加:

vim /etc/httpd/conf.d/test.conf

<Directory   "/var/www/html/secret">

AuthType Basic    认证方式

AuthName "Secret"  提示信息

AuthUserFile  "/etc/httpd/conf.d/.htusers"  存放用户的文件  (需创建验证文件htpasswd -c /etc/httpd/conf.d/.htpusers wang)

Require user http1 http2      定义允许访问的用户

</Directory>

允许账号文件中的所有用户登录访问:Require valid-user

③使用专用命令完成此类文件的创建及用户管理:

htpasswd [options] /PATH/HTTPD_PASSWD_FILE username

-c:自动创建文件,仅应该在文件不存在时使用

-m:md5格式加密,默认方式

-s: sha格式加密

-D:删除指定用户

例:htpasswd -c /etc/httpd/conf.d/.htpusers wang   创建用户和设置密码,默认使用md5加密

htpasswd   /etc/httpd/conf.d/.htpusers mage   

注意:只有当第一次创建用户时需要加-c,否则后面创建用户会覆盖之前的用户

④重新启动服务:service httpd start

⑤测试:在linux上:

curl  http://192.168.159.125/secret

1240

在windows上测试:http://192.168.159.125/secret,会弹出用户认证界面

1240

比较常见的错误:

一个是http的80端口被占用,我们需要修改/etc/httpd/conf/httpd.conf中两处地方:Listen 8080  ServerName localhost:8080,这里统一改成8080了