基本认证(Basic Authentication)是一个简单但常用的鉴权方式,在有一定安全性要求但要求不高的情况下可以使用。本文将简单介绍在Nginx中配置基本认证的步骤。

Nginx配置

在Nginx配置中,Basic Auth主要涉及到auth_basicauth_basic_user_file两个命令。两个命令一般在location指令中使用。

auth_basic命令用于启用基于HTTP Basic Authentication 协议的身份验证,其语法规则为auth_basic <string | off>auth_basic的第一个参数值默认为off,代表不开启基本认证。当参数值不为off时,表示开启基本认证并将其值设置为realm的值。

auth_basic_user_file命令指定存放有用于认证的用户名与密码文件的路径,其语法规则为auth_basic_user_file <file_path>。指定文件路径的参数值可以使用相对路径或是绝对路径,在不确定的情况下可以直接使用绝对路径避免不必要的麻烦。

创建用户信息文件

用户信息文件可以使用htpasswd工具创建,htpasswd工具在apache2-utils(Debian、Ubuntu等)或httpd-tools(RedHat、CentOS等)包中。文件内容的格式为:

# 注释
user1:pass1
user2:pass2:注释
user3:pass3

使用htpasswd工具创建用户信息文件时需要指定文件的路径以及用户名,若文件不存在则需要使用-c选项。

htpasswd -c <file_path> <user>

在默认情况下,htpasswd将使用Unix环境下的crypt()函数对密码进行加密。另外也可以使用其它的加密方式,例如使用-m选项选择MD5算法,或是使用-B选项选择Bcrypt算法。

除了使用htpasswd工具以外,也可以使用openssl等工具生成加密后的密码并按照用户信息文件的格式手动创建该文件。例如可以使用openssl passwd -crypt <password>命令生成通过crypt()函数加密的密码。

openssl 3.0及之后的版本将会移除-crypt选项。

示例

下属例子中,我们将分别配置使用基本认证的/secure资源以及未使用基本认证的/insecure资源。

location /insecure {# ...
}location /secure {auth_basic "realm";auth_basic_user_file conf/htpass;# ...
}

在修改Nginx配置后,可以使用sudo nginx -s reload命令加载Nginx配置。当我们访问/insecure资源时,可以直接打开,而访问/secure资源时,浏览器将提示需要输入账号与密码进行验证。

参考资料

  • HTTP认证之基本认证
  • Module ngx_http_auth_basic_module
  • Restricting Access with HTTP Basic Authentication
  • htpasswd - Manage user files for basic authentication
  • openssl-passwd

Nginx设置基本认证相关推荐

  1. Nginx设置目录浏览并配置验证

    Nginx默认是不允许进行列目录的,如果需要使某个目录可以进行浏览,可如下设置: 如: 让/var/www/soft 这个目录在浏览器中完成列出. 一.设置目录浏览 1.打开/usr/local/ng ...

  2. Nginx的双向认证

    Nginx的双向认证 一.前言 参考链接 OPENSSL加密DSA,RSA介绍 客户端默认是相信权威CA机构的,操作系统内置了CA证书. 说白了就是操作系统默认就有了CA证书的公钥,比如我们能访问ht ...

  3. Nginx设置成服务并开机自动启动的配置详解

    Nginx 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务,接下来通过本文给大家介绍Nginx设置成服务并开机自动启动的配置,需要的朋友可以参考下 在/et ...

  4. Nginx设置本地浏览器缓存

    Nginx设置本地浏览器缓存 浏览器缓存(BrowserCaching) 为了加速浏览器,浏览器在用户磁盘上,对最近请求过的文档进行存储. 当访问者再次请求这个页面时,浏览器就可以从本地磁盘显示文档, ...

  5. nginx php默认首页,iis、apache、nginx设置默认首页index.html方法图解 电脑维修技术网...

    文章简介 一般来说,我们访问一个网站的首页如www.pc811.com就直接打开首页了,但是有些时间我们却发现输入网址后,却显示打不开网页404的错误提示,一般来说出现这种问题多是网站管理员未设置网站 ...

  6. Nginx网站用户认证

    一.Nginx网站用户认证 用户认证:用户访问网页时需要输入一个用户名和密码才能打开网页. nginx的默认网页时安装目录下的html/index.html,配置文件在安装目录下的conf目录中的ng ...

  7. linux nginx http cache时间不对,Linux中Nginx设置proxy_cache缓存与取消缓存-linux-操作系统-壹...

    本文章来讲述一下关于Linux中Nginx设置proxy_cache缓存与取消缓存实现方法,有需要的朋友可参考. 在配置文件的server{}内,添加这么一句即可: 代码如下 复制代码 locatio ...

  8. Nginx设置禁止通过IP访问服务器

    Nginx设置禁止通过IP访问服务器 2010-02-02 14:16:40|  分类: LNMP |  标签: |字号大中小 订阅 今天要在Nginx上设置禁止通过IP访问服务器,只能通过域名访问, ...

  9. Nginx设置TCP上游服务器的SSL配置

    Nginx设置TCP上游服务器的SSL配置 本文介绍了如何为NGINX Plus和接受TCP连接的负载均衡的服务器组设置SSL 什么是SSL终端 SSL终端意味着NGINX Plus充当与客户端连接的 ...

最新文章

  1. Android中文API (109) —— SimpleCursorTreeAdapter
  2. python中strip()的陷阱
  3. 几大科技公司在VR方面的布局是怎么样的?
  4. SetWindowPos详解
  5. Spring Data Jpa中的save和saveAndFlush方法
  6. 充电器兼容qi是什么意思_什么是“经Qi认证”的无线充电器?
  7. 普及一下IPTV行业
  8. CentOS 开机优化程序
  9. EEGLAB使用流程
  10. 平板电脑可以装python吗_电脑上的应用程序可以装在平板电脑上吗
  11. Autodesk HSMWorks Ultimate 2019 Crack 破解版
  12. PHP僵尸网络,byob--建立自己的僵尸网络
  13. win7旗舰版系统下usb外接无线网卡安装教程
  14. 笨方法学 python3怎么样_笨办法学python3日常问题解决
  15. 2022年一级建造师考试《市政公用工程》练习题及答案(多选题)
  16. ps抠图技巧之图层样式
  17. 华为OD机试 - 英文输入法单词联想(Python) | 机试题+算法思路+考点+代码解析 【2023】
  18. apktool下载安装
  19. hMailServer 使用教程 —— 手把手教你搭建自己的邮箱服务器
  20. MATLAB算法实战应用案例精讲-【人工智能】语义分割(补充篇)(附matlab代码实现)

热门文章

  1. 什么是动态代理?应用场景?
  2. 基于Module Federation的模块化跨栈方案探索
  3. 惠普HP ENVY 100 - D410a 打印机驱动
  4. 服务器文件夹是什么文件夹,传奇服务端每个文件夹的含义
  5. Revit插件 | 建模助手的企业账号与个人账号究竟有啥区别?
  6. 华硕“陷害门”升级 英特尔或遭起诉
  7. MyBioSource丨艾美捷 H3F3B多克隆抗体
  8. (更新时间)2021年3月21日 python基础知识(函数的返回值)
  9. Python随机数、随机序列生成
  10. 【2020年高被引学者】 杨植麟 北京睿科伦智能科技有限公司