当前位置:   article > 正文

Nginx配置Basic_Auth登录认证,NGINX使用 HTTP 基本身份验证限制访问_nginx基本认证配置

nginx基本认证配置

1.安装配置NGINX

2.生成密码文件

  1. 这里我们使用htpasswd来生成. yum install -y httpd-tools
  2. htpasswd是开源的http服务器Apache Http Server的一个命令行工具.可以用来创建和更新基本认证
    的用户认证密码文件.其中htpasswd必须对密码文件有读写权限.
  3. 参数如下:
    3.1 -b -->密码直接写在命令行中,而非使用提示输入的方式
    3.2 -c—>创建密码文件,如果文件存在,则覆盖
    3.3 -n—>不更新密码文件,将用户名密码进行标注输出
    3.4 -m—>使用md5算法对密码处理
    3.5 -d—>使用crypt算法对面处理
    3.6 -s—>使用sha算法对密码处理
    3.7 -p—>不对密码加密处理,使用明文
    3.8 -D—>从密码文件中删除指定用户记录
htpasswd -bc /usr/local/nginx/nginx-1.18.0/conf/.htpasswdadmin1 123456
  • 1

2.1创建密码文件

要创建用户名-密码对,请使用密码文件创建实用程序,例如 apache2-utils 或 httpd-tools

验证是否安装了apache2-utils(Debian,Ubuntu)或httpd-tools(RHEL / CentOS / Oracle Linux)。

创建密码文件和第一个用户。使用 -c 标志运行实用程序(创建新文件),将文件路径名作为第一个参数,将用户名作为第二个参数:htpasswd

$ sudo htpasswd -c /etc/apache2/.htpasswd user1
  • 1

按 Enter 并在出现提示时键入 user1 的密码。

创建其他用户密码对。省略 -c 标志,因为该文件已存在:

$ sudo htpasswd /etc/apache2/.htpasswd user2
  • 1

您可以确认该文件包含配对的用户名和散列密码:

$ cat /etc/apache2/.htpasswd
user1:$apr1$/woC1jnP$KAh0SsVn5qeSMjTtn0E9Q0
user2:$apr1$QdR8fNLT$vbCEEzDj7LyqCMyNpSoBh/
user3:$apr1$Mr5A0e.U$0j39Hp5FfxRkneklXaMrr/
  • 1
  • 2
  • 3
  • 4

为 HTTP 基本身份验证配置 NGINX 和 NGINX Plus
在要保护的位置内,指定 auth_basic 指令并为密码保护区域命名。请求输入凭据时,区域的名称将显示在用户名/密码对话框窗口中:

location /api {
    auth_basic "Administrator’s Area";
    #...
}
使用包含用户/密码对的 .htpasswd 文件的路径指定 auth_basic_user_file 指令:

location /api {
    auth_basic           "Administrator’s Area";
    auth_basic_user_file /etc/apache2/.htpasswd; 
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

或者,您可以使用基本身份验证限制对整个网站的访问,但仍公开某些网站区域。在这种情况下,请指定取消从上层配置级别继承的 auth_basic 指令的参数:off

server {
    ...
    auth_basic           "Administrator’s Area";
    auth_basic_user_file conf/htpasswd;

    location /public/ {
        auth_basic off;
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

将基本身份验证与 IP 地址的访问限制相结合
HTTP基本认证可以有效地与IP地址的访问限制相结合。至少可以实现两种方案:

用户必须经过身份验证并具有有效的 IP 地址
用户必须经过身份验证或具有有效的 IP 地址
使用允许和拒绝指令允许或拒绝来自特定 IP 地址的访问:

location /api {
    #...
    deny  192.168.1.2;
    allow 192.168.1.1/24;
    allow 127.0.0.1;
    deny  all;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

将仅授予网络访问权限,不包括该地址。请注意,和 指令将按其定义的顺序应用。192.168.1.1/24192.168.1.2allowdeny

将 IP 和 HTTP 身份验证的限制与满足指令相结合。 如果将指令设置为 ,则在客户端同时满足这两个条件时授予访问权限。如果将指令设置为 ,如果客户端至少满足一个条件,则授予访问权限:allany

location /api {
    #...
    satisfy all;    

    deny  192.168.1.2;
    allow 192.168.1.1/24;
    allow 127.0.0.1;
    deny  all;

    auth_basic           "Administrator’s Area";
    auth_basic_user_file conf/htpasswd;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

3完整示例

完整示例
该示例显示了如何通过简单的身份验证和 IP 地址的访问限制来保护状态区域:

http {
    server {
        listen 192.168.1.23:8080;
        root   /usr/share/nginx/html;
        location /api {
            api;
            satisfy all;
            deny  192.168.1.2;
            allow 192.168.1.1/24;
            allow 127.0.0.1;
            deny  all;
            auth_basic           "Administrator’s Area";
            auth_basic_user_file /etc/apache2/.htpasswd; 
        }
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/732418
推荐阅读
相关标签
  

闽ICP备14008679号