文章目录
- 前言
- 一、ngx_http_auth_basic_module
- 二、指令
- 1.auth_basic
- 1.auth_basic_user_file
- 示例
- 生成密码文件
- 配置basic认证
- 浏览器验证
- 总结
前言
nginx可以通过HTTP Basic Authutication协议进行用户名和密码的认证。
一、ngx_http_auth_basic_module
生效阶段: NGX_HTTP_ACCESS_PHASE
模块默认编译进nginx,通过–without-http_auth_basic_module禁用。
二、指令
1.auth_basic
使用示例:
Syntax: auth_basic string | off;
Default:
auth_basic off;
Context: http, server, location, limit_except
1.auth_basic_user_file
使用示例:
Syntax: auth_basic_user_file file;
Default: —
Context: http, server, location, limit_except
示例
生成密码文件
Usage:htpasswd [-cmdpsD] passwordfile usernamehtpasswd -b[cmdpsD] passwordfile username passwordhtpasswd -n[mdps] usernamehtpasswd -nb[mdps] username password-c Create a new file. # 创建一个新的文件-n Don't update file; display results on stdout. # 直接输出产生的结果,无需写入或者更新文件。-m Force MD5 encryption of the password.# 采用md5哈希-d Force CRYPT encryption of the password (default).-p Do not encrypt the password (plaintext).-s Force SHA encryption of the password.-b Use the password from the command line rather than prompting for it. # 密码会放在命令行里。-D Delete the specified user. # 删除某个账户
# 生成密码
htpasswd -cb auth.pass admin admin@6688
#查看
[root@test20 nginx]# cat auth.pass
admin:$apr1$sZKLzS5n$DA2E0qxK3Rap7QmyWzKIR/
配置basic认证
[root@test20 ~]# cat /etc/nginx/conf.d/access.conf
server {server_name access.test.io;root html/;location / {auth_basic "auth_basic认证";auth_basic_user_file auth.pass;}
}
浏览器验证
总结
basic认证在一些场景还是有用的,但是basic毕竟是http协议下的,可以通过抓包获取到密码。