LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

nginx配置用户名和密码认证

admin
2025年6月28日 22:28 本文热度 135

HTTP Basic Authentication协议 

  1. ngx_http_auth_basic_module模块使用HTTP Basic Authentication协议来验证用户名和密码,从而实现对资源的访问限制。
  2. HTTP Basic Authentication协议相关
    • 客户端请求web服务器时,如果返回401Unauthorized表示需要身份认证,响应头中会包含WWW-Authenticate字段,例如WWW-Authenticate: Basic realm="closed site"realm表示认证域,浏览器收到这个响应后会弹出用户名密码输入框。

    • 客户端发送认证信息,在请求头中Authorization字段中传入用户名和密码。格式为Authorization:Basic Base64(用户名:密码)
    • HTTP Basic Authentication认证通过以后浏览器会缓存认证信息,下次访问时能够看到浏览器会在请求中自动加上Authorization头信息。

    auth_basic指令 

    1. 作用:启用HTTP Basic Authentication认证。
    2. 语法:auth_basic string | off;
      • auth_basic string表示启用HTTP Basic Authentication认证。
      • auth_basic off取消继承自上一层的auth_basic指令的设置。
    3. 默认值:auth_basic off;
    4. 作用域:http, server, location, limit_except

    auth_basic_user_file指令 

    1. 作用:配置用户名密码文件。
    2. 语法:auth_basic_user_file file;  指定认证文件,文件格式为:

    user1:password1
    user2:password2


    3. file参数中可以包含变量。
    4. 配置文件中的密码可以为以下几种格式:

    • crypt()函数加密,可以通过Apache HTTP Server的htpasswd工具生成,或openssl passwd命令生成。
      • htpasswd方式:
        • 安装:sudo yum install httpd-tools
        • 加密:htpasswd -s conf/htpasswd user1  # 使用SHA1算法生成user1用户的密码并更新到conf/htpasswd文件中
      • openssl方式:
        • 系统一般都预装了openssl
        • openssl passwd -6 -salt "bKaMt2" 3edc4rfv # 使用SHA512算法对3edc4rfv加密,生成后的密码手动加入到htpasswd文件中,格式为:用户名:加密后的密码
    • htpasswd或openssl passwd工具计算的MD5值。
      • htpasswd:htpasswd -m -s conf/htpasswd user5 # MD5算法配置user5用户的密码并更新到conf/htpasswd文件中
      • openssl方式:openssl passwd -1 34erdfcv # MD5算法对3edc4rfv加密,生成后的密码手动加入到conf/htpasswd文件中,格式为:用户名:加密后的密码
    • RFC 2307定义的{scheme}data格式。scheme为加密方案,可以为PLAIN、SHA、SSHAdata为Base64编码的数据。
      • PLAIN方式加密举例:PLAIN是明文方式,不推荐,格式为:user7:{PLAIN}8ik7uj,其中user7为用户名,8ik7uj为密码。
      • SHA方式加密举例:printf "123qwe" | openssl dgst -sha1 -binary | base64  # 对123qwe加密,生成后手动加入到htpasswd文件中,格式为:用户名:{SHA}加密后的密码
      • SSHA方式加密举例:
        • 安装:sudo yum install openldap-servers openldap-clients
        • 加密 :slappasswd -h "{SSHA}" -s "3edc3edc" # 对3edc3edc加密,生成后手动加入到htpasswd文件中,格式为:用户名:{SSHA}加密后的密码

    测试 

    1. nginx配置
      location /test {
         auth_basic "closed site";
         auth_basic_user_file /usr/local/nginx/conf/htpasswd;
         alias /usr/local/nginx/html;
      }
    2. htpasswd文件样例 

    3. 测试
      curl --request GET \
        --url http://xxx.xxx.xxx.xxx/test/index.html \
        --header 'Accept: */*' \
        --header 'Accept-Encoding: gzip, deflate, br' \
        --header 'Authorization: Basic dXNlcjk6M2VkYzNlZGM=' \
        --header 'Connection: keep-alive' \
        --header 'User-Agent: PostmanRuntime-ApipostRuntime/1.1.0'



    阅读原文:原文链接


    该文章在 2025/7/1 23:38:33 编辑过
    关键字查询
    相关文章
    正在查询...
    点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
    点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
    点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
    点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
    Copyright 2010-2025 ClickSun All Rights Reserved