nginx配置auth_basic登录认证的方法

Posted 木偶跳舞

tags:

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

有时候我们通过nginx搭建了一台文件服务器, 一般来讲是公开的, 但我们又希望该服务器不让他人看到, 有人可能会搭建一个登录系统, 但是太麻烦, 也没太大必要, 比较简单的做法是配置Basic Auth登录认证

纯后台的应用都可以加nginx basic auth提高安全性

方法步骤

1、安装htpasswd

htpasswd是Apache密码生成工具,Nginx支持auth_basic认证,因此我门可以将生成的密码用于Nginx中

Ubuntu:

sudo apt-get install apache2-utils

CentOS:

sudo yum -y install httpd-tools

参数如下:

-c 创建passwdfile.如果passwdfile 已经存在,那么它会重新写入并删去原有内容.
-n 不更新passwordfile,直接显示密码
-m 使用MD5加密(默认)
-d 使用CRYPT加密(默认)
-p 使用普通文本格式的密码
-s 使用SHA加密
-b 命令行中一并输入用户名和密码而不是根据提示输入密码,可以看见明文,不需要交互
-D 删除指定的用户

2、生成密码

进入密码文件存储目录,如本次测试为 /usr/local/nginx/conf/passwd

cd /usr/local/nginx/conf/passwd
#生成密码
htpasswd -c ./ip_passwdfile username
#执行上命令后会要求输入两次密码,./passwdfile 是在当前目录下创建密码文件passwdfile ,username即为需要设置的账号

3、载入配置

接下来在Nginx配置文件中(通常是server段内),加入如下两行,并重载Nginx(service nginx reload)即可生效。

server
    
        listen 80 default_server reuseport;
        server_name _;
        index index.html index.htm index.php;
        root  /home/wwwroot/default;

        auth_basic "请输入账号密码";   #这里是验证时的提示信息
        auth_basic_user_file /usr/local/nginx/conf/passwd/ip_passwdfile;

        include enable-php.conf;

        location /nginx_status
        
            stub_status on;
            access_log   off;
        

        location ~ .*.(gif|jpg|jpeg|png|bmp|swf)$
        
            expires      30d;
        

        location ~ .*.(js|css)?$
        
            expires      12h;
        

        location ~ /.well-known 
            allow all;
        

        location ~ /.
        
            deny all;
        

        access_log  /home/wwwlogs/access.log;
    

4、访问测试

再访问站点,提示需要输入用户名和密码才可以访问,此方法适合不宜公开的站点,或不想对其专门做账号登录系统的时候。这样可避免被弱口令扫描,无疑再上了一把锁。

注意

对于这种有HTTP Basic Authentication协议验证的页面,如果使用curl抓取的话,可以加上账号密码进行请求:

curl -u username:password URL

如果用wget下载,可以用:

wget --http-user= --http-passwd=passwd URL

以上是关于nginx配置auth_basic登录认证的方法的主要内容,如果未能解决你的问题,请参考以下文章

使用nginx的auth_basic实现prometheus 安全认证

nginx 配置用户认证

Nginx认证

nginx之用户认证

Nginx环境使用auth_basic密码保护wordpress后台登录界面

用户认证