NiceLeeのBlog 用爱发电 bilibili~

Nginx 配置身份验证 http_auth_basic_module

2018-12-16
nIceLee

阅读:


实现用户名和密码验证访问,可以直接使用Nginx 的http_auth_basic_module模块。

简介

语法: auth_basic_user_file file;
默认值: —
配置段: http, server, location, limit_except

用户密码加密方式
http://nginx.org/en/docs/http/ngx_http_auth_basic_module.html

关于密码

  • 官方文档里对支持的密码类型进行了说明:
    • 采用系统函数crypt()加密的密码;可通过htpasswd命令或者openssl passwd命令生成
    • 通过Apache提供的基于MD5的变种加密算法(apr1),同样可通过htpasswd 或者openssl passwd命令生成
    • {scheme}data格式表示的加密后的密码,RFC 2307中有对该格式的密码标准进行了说明。其中scheme指的是加密算法,nginx支持的scheme有PLAIN, SHA,SSHA算法。
  • 密码生成示例:
    • 安装相关工具
      yum install -y httpd-tools 
      
    • 初次使用生成数据库和用户(之后更新或新增用户去掉-c即可)
      root@xxxx:~# htpasswd -c /usr/local/nginxpwd user //数据库路径 以及 用户名
        New password: *******  //输入认证密码 
        Re-type new password: ********  //再次输入认证密码 
      root@xxxx:~# chmod 755 /usr/local/nginx/passwd    //修改网站认证数据库权限 
      root@xxxx:~# cat /usr/local/nginx/passwd   //可以看到通过htpasswd生成的密码为加密格式 
      user:$apr1$pVpIZigz$URwphPhvGl9pDarM9phOw/
      

      配置示例

      如下:

      location / {  
      auth_basic      "Name of Your Site";  
      auth_basic_user_file /usr/local/nginx/passwd;  
      }
      

内容
隐藏