Linux使用Nginx、Htpasswd实现基本认证登陆

文章目录[x]
  1. 0.1:Htpasswd是Apache的附带程序,用于生成含有用户名、密码的基本认证文件。可以对某些网页添加基本身份认证。
  2. 0.2:
  3. 0.3:由于我的服务器使用的是Nginx,所以需要下载组件才可以使用。
  4. 0.4:对于Ubuntu系统需要安装Apache的htpasswd组件
  5. 0.5:对于CentOS系统需要安装httpd组件
  6. 0.6:htpasswd参数:
  7. 0.7:创建用户:
  8. 0.8:在原加密文件中增加用户:
  9. 0.9:删除用户名和密码:

点击数:65

介绍

Htpasswd是Apache的附带程序,用于生成含有用户名、密码的基本认证文件。可以对某些网页添加基本身份认证。

由于我的服务器使用的是Nginx,所以需要下载组件才可以使用。

Nginx在源码中提供了ngx_http_auth_basic_module这个模块,它提供了最基本的http认证,这是http协议支持的,它会弹出一个框让你输入用户名和密码,只有用户名和密码输入正确了才能访问。

ngx_http_auth_basic_module是使用文件作为存储介质的,用户名是明文存储,而密码是加密之后再存储,这样在认证框输入的用户名和密码必须和文件的信息匹配才能认证成功。

实践

Ubuntu

对于Ubuntu系统需要安装Apache的htpasswd组件

apt install apache2-utils

CentOS

对于CentOS系统需要安装httpd组件

yum install httpd 

htpasswd使用方法

htpasswd参数:

 -c:创建一个加密文件;
 -n:不更新加密文件,只将加密后的用户名密码显示在屏幕上;
 -m:默认采用MD5算法对密码进行加密;
 -d:采用CRYPT算法对密码进行加密;
 -p:不对密码进行进行加密,即明文密码;
 -s:采用SHA算法对密码进行加密;
 -b:在命令行中一并输入用户名和密码而不是根据提示输入密码;
 -D:删除指定的用户。

创建用户:

htpasswd -bc .passwd username password

.passwd为你所创建的加密文件,此文件为隐藏文件,默认采用MD5算法进行加密。

username为你所创建的用户名,password为你所创建的密码。

在原加密文件中增加用户:

htpasswd -b .passwd username2 password2

.passwd为你原来创建的加密文件,username2、password2分别为你要增加的用户名以及其对应的密码

删除用户名和密码:

htpasswd -D .passwd username

启用Nginx的ngx_http_auth_basic_module模块

在想要添加登录认证的网页所属的Nginx配置文件中location / {}内部添加以下内容:

auth_basic "netdata";

auth_basic_user_file /etc/nginx/.htpasswd;

其中,auth_basic所填写的是你想为其指定的用户名;auth_basic_user_file所填写的是加密文件路径。

点赞

发表评论

昵称和uid可以选填一个,填邮箱必填(留言回复后将会发邮件给你)
tips:输入uid可以快速获得你的昵称和头像