nginx-http协议-基于用户名的身份认证-Basic-Digest-的实现方式
Posted on 2023-10-03 14:47 520_1351 阅读(401) 评论(0) 编辑 收藏 举报对于nginx认证方式,有基于客户端IP地址和用户名的身份认证,这里笔者主要讲解一下,如何实现基于用户名的认证方式,有如下两种实现方式
【Basic】 和 【Digest】,Digest认证是为了修复基本认证协议的严重缺陷而设计的,秉承“绝不通过明文在网络发送密码”的原则,通过“密码摘要”进行认证,大大提高了安全性。
基于Basic的实现方式
Basic Auth 的优缺点
优点:提供简单的用户验证功能,其认证过程简单明了,适合于对安全性要求不高的系统或设备中。
缺点:输入的用户名,密码 base64编码后会出现在Authorization里,很容易被解析出来。
1、 需要保证操作系统中,有htpasswd 命令,如果没有这个命令,需要先安装 httpd-tools 软件包
[root@qq-5201351 ~]# yum install httpd-tools -y
注:htpasswd 是开源 http 服务器 apache httpd 的一个命令工具,用于生成 http 基本认证的密码文件。
2、使用htpasswd命令,创建用户,生成密码文件
[root@qq-5201351 ~]# htpasswd -c /usr/local/nginx/conf/htpasswd zhangsan New password: Re-type new password: Adding password for user zhangsan [root@qq-5201351 ~]# [root@qq-5201351 ~]# cat /usr/local/nginx/conf/htpasswd zhangsan:$apr1$Bg./nKo0$nocHbJHtXFbp1aivp4Be90
3、开启Basic的认证方法,及指定用户名-密码文件
location / { root html; index index.html index.htm; auth_basic "My-Nginx-Server"; auth_basic_user_file /usr/local/nginx/conf/htpasswd; }
注意:关于auth_basic后面的内容可以自己定义,但这个选项必须要有,如果去掉,或者值为off ,就无法实现用户名名密码认证了
4、最后重启nginx,再次登录时,就可以看到效果了,访问时,要求需要输入用户名和密码信息了
如果不输入用户名和密码,将返回 HTTP/1.1 401 Unauthorized 的错误代码
尊重别人的劳动成果 转载请务必注明出处:https://www.cnblogs.com/5201351/p/17741140.html
作者:一名卑微的IT民工
出处:https://www.cnblogs.com/5201351
本博客所有文章仅用于学习、研究和交流目的,欢迎非商业性质转载。
由于博主的水平不高,文章没有高度、深度和广度,只是凑字数,不足和错误之处在所难免,希望大家能够批评指出。
博主是利用读书、参考、引用、复制和粘贴等多种方式打造成自己的文章,请原谅博主成为一个卑微的IT民工!