• nginx添加认证


    有的时候暴漏nginx的web页面很不安全,需要添加一个认证,本文介绍使用htpasswd工具为nginx添加认证的用户名和密码。

    在 nginx 下,提供了 ngx_http_auth_basic_module 模块实现让用户只有输入正确的用户名密码才允许访问web内容。默认情况下,nginx 已经安装了该模块。所以整体的一个过程就是先用第三方工具设置用户名、密码(其中密码已经加过密),然后保存到文件中,接着在 nginx 配置文件中根据之前事先保存的文件开启访问验证。

    1、检查工具是否安装,如果未安装则使用yum安装

    #htpasswd         

    有以上输出表示已经安装,如果没有按装,使用如下命令安装:

    #yum -y  install httpd-tools

    2、htpasswd选项参数

    htpasswd [-cmdpsD] passwordfile username
    htpasswd -b[cmdpsD] passwordfile username password
    htpasswd -n[mdps] username
    htpasswd -nb[mdps] username password

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

    3、创建用户和密码文件

     #htpasswd    -bc   /etc/nginx/.passwd   test    test@123

    test:用户名, test@123:密码

    文件内容如下:

    test:$apr1$V3P/kJ/E$tgtEmhu7boXUWxSnxslf0.

    4、nginx配置文件修改

    1)如果想要对整个站点进行加密,将以下语句添加到server段:

        auth_basic "Protected Elasticsearch";
        auth_basic_user_file /etc/nginx/.htpasswd;

    例如:

    server {
            listen *:80;
         client_max_body_size 2048m;
        auth_basic "Protected Elasticsearch";
        auth_basic_user_file /etc/nginx/.htpasswd;
            access_log  /var/log/nginx/elk_access.log;
            error_log   /var/log/nginx/elk_error.log;

        location / {

         http_pass   http://10.1.1.1;  

    }

    }

    2)如果只是对某一个请求,进行加密,则需要将上述语句添加到对应的location里面:

       auth_basic "Protected Elasticsearch";
        auth_basic_user_file /etc/nginx/.htpasswd;

    例如:

    server {
            listen *:80;
         client_max_body_size 2048m;
        
            access_log  /var/log/nginx/elk_access.log;
            error_log   /var/log/nginx/elk_error.log;

        location / {

         auth_basic "Protected Elasticsearch";
         auth_basic_user_file /etc/nginx/.htpasswd;

         http_pass   http://10.1.1.1;  

    }

    }

    修改好配置首先进行检查配置文件的正确性:

    # nginx  -t

    使配置生效:

    #nginx  -s reload

    5、增加用户

    #htpasswd  -b   /etc/nginx/.passwd     test1  test123

    使修改生效

    #nginx -s reload

     删除用户名和密码

    #htpasswd -D  /etc/nginx/.passwd    test1 

    使修改生效

    #nginx -s reload

    只显示用户名、密码,不修改密码文件

    #htpasswd -nb  test  test@123

    修改密码

    1)第一种方法

    #htpasswd -D /etc/nginx/.passwd  test1

    #htpasswd  -b   /etc/nginx/.passwd     test1  test123

    2)第二种方法

    #htpasswd -nb  test  test@123

    test:$apr1$6QjLCTND$GSgAMl5.a0/cKcsqFV9RX.

    将之前的删除或注释掉,并将上述产生的新密码添加到密码文件里面

    #vim /etc/nginx/.passwd

    test:$apr1$6QjLCTND$GSgAMl5.a0/cKcsqFV9RX.

    使修改生效

    #nginx -s reload

  • 相关阅读:
    getText() 获取properties中的变量
    Vue----渐进式框架的理解
    appium---学习
    css----overflow(布局)
    css----display(显示) 与 Visibility(可见性)
    css----position(定位)
    中秋节
    找工作清闲的一天
    两天没有好好休息的感觉
    开始正式步入找工作的节奏
  • 原文地址:https://www.cnblogs.com/cuishuai/p/7761031.html
Copyright © 2020-2023  润新知