带你深入了解nginx基本登录认证(包含所有配置步骤和深度解析)
点击访问msy.plus获得更好的体验
http基本验证的作用
- http基本身份验证会从浏览器弹出登录窗口,
- 简单明了,容易理解,
- 对于面向终端用户的前台来说,不够友好,
- 但对于内部员工操作的后台还是很有用,通常作为一层安全措施应用。
文章图片
通常和auth_basic配合使用的一个工具是htpasswd,该工具来源于httpd-tools包,主要用于生成用户及其密码加密文件
可能存在的问题 但是在htpasswd在生成密码时有一个问题
文章图片
可以看到htpasswd总共有4种加密算法,分别是MD5、bcrypt、CRYPT、SHA,在httpd-tools 2.2的版本中,默认使用的是CRYPT加密算法来进行密码加密的,而httpd-tools 2.4的版本中,默认是使用MD5来进行密码加密的
有人说明明SHA比MD5加密要安全性高,为什么新版本中用MD5作为默认加密算法?
在httpd-tools 2.4的图中,最后一句话“The SHA algorithm does not use a salt and is less secure than the MD5 algorithm”翻译一下就是,没有加salt的SHA算法,并没有MD5安全
salt在密码学中,叫做盐,是一个随机生成的字符串,在不加盐的哈希中,有一种破解方法就是彩虹表碰撞,原始密码通过加盐之后再进行散列,可以有效避免彩虹表攻击的暴力破解
解决办法 安全的处理方法是,更新httpd-tools到2.4版本,然后重新生成用户密码对,或在htpasswd生成密钥时,通过参数-m选择md5加密方式生成新的用户密码对
模拟验证演示 这里为了例子我们新建一个站点
域名:nginx_basic_auth.msy.plus
登录名:admin
密码:12345678
仅作为演示,生产环境不能使用这种极简单的密码
生成供测试文件
echo "welcome to nginx_basic_auth.msy.plus" >> ./nginx_basic_auth/index.html
配置nginx的http基本验证
在nginx.conf中检查是否有对conf.d目录的支持如不存在,添加它
include /usr/local/soft/nginx-1.18.0/conf/conf.d/*.conf;
说明:生产环境中,为了管理方便,会把每个server放到专用的conf文件中,不要混在一起而全写到nginx.conf中,修改和查找都不方便创建网站的server文件
server {
auth_basic "lhdtest.com admin";
auth_basic_user_file /usr/local/soft/nginx-1.18.0/conf/conf.d/admin.pwd;
listen80;
server_namenginx_basic_auth.msy.plus
root/data/site/admin/html;
indexindex.html index.shtmlindex.htm;
access_log/data/nginx/logs/admin.access_log;
error_log/data/nginx/logs/admin.error_log;
}
生成密码
nginx仅需要一个密码文件作为验证,而该密码文件在何处生成并不重要,所以你只需要一个可以生成该密钥的方法即可
方法很多,可以用python 可以用go 或者用c
当然也可以用各种工具辅助生成,在下列生成工具中挑一个你喜欢的方式吧
使用htpasswd生成密码
使用openssl生成密码
使用python生成密码
测试效果
进入网站输入正确的用户名和密码即可进入网站
关于nginx配置项有不了解的可以看这里
本系列文章 带你深入了解nginx基本登录认证(包含所有配置步骤和深度解析)
带你深入了解nginx基本登录认证:使用htpasswd生成密码
带你深入了解nginx基本登录认证:使用openssl生成密码
带你深入了解nginx基本登录认证:使用python生成密码
参考 nginx配置禁特定路径下的反向代理
nginx配置禁止访问目录或禁止访问目录下的文件
nginx跨域处理
【带你深入了解nginx基本登录认证(包含所有配置步骤和深度解析)】你的nginx登录认证安全吗?
配置http基本验证(Basic Auth)
Centos安装htpasswd_Nginx中使用htpasswd
推荐阅读
- 深入理解Go之generate
- 我们重新了解付费。
- 拍照一年啦,如果你想了解我,那就请先看看这篇文章
- C语言中的时间函数clock()和time()你都了解吗
- 【1057快报】深入机关,走下田间,交通普法,共创文明
- 不废话,代码实践带你掌握|不废话,代码实践带你掌握 强缓存、协商缓存!
- 操作系统|[译]从内部了解现代浏览器(1)
- 生发知识,带你深入了解
- 深入理解|深入理解 Android 9.0 Crash 机制(二)
- 了解自然大气粒子对气候的影响