点击访问msy.plus,更好体验http基本认证功能http基本认证会弹出登录窗口从浏览器,简单明了,很容易理解,对于面向终端用户的前端来说不够友好,但是对于内部员工操作的后台还是很有用的,通常作为一层安全措施来应用.这样的登录认证安全吗?auth_basic作为认证模块,在apache和nginx中比较常用。在很多没有内置认证的系统中,常用的操作是使用nginx的auth_basic做一个简单的认证。开启auth_basic认证后,访问时会提示输入用户名和密码进行认证。通常和auth_basic一起使用的一个工具是htpasswd,它来自httpd-tools包,主要用来生成用户和密码。加密文件可能有问题,但是htpasswd在生成密码的时候有问题一个问题可以看出htpasswd一共有4种加密算法,分别是MD5、bcrypt、CRYPT、SHA。在httpd-tools2.2版本中默认使用CRYPT加密算法对密码进行加密,而httpd-tools2.4新版本中默认使用MD5对密码进行加密。有人解释说SHA比MD5加密更安全。为什么新版本默认使用MD5作为加密算法?在httpd-tools2.4的图片中,最后一句“TheSHAalgorithmdoesnotuseasaltandislesssecurethantheMD5algorithm”可以翻译为不加盐的SHA算法,密码学中没有MD5安全盐,称为salt,是一个随机生成的字符串。在没有加盐的哈希中,有一种破解方法叫做彩虹表碰撞。原密码加盐后进行哈希处理,可以有效避免彩虹表攻击的暴力破解。安全的处理方式是更新httpd-tools到2.4版本,然后重新生成用户密码对,或者htpasswd生成密钥时,使用参数-m选择md5加密方式生成新的用户密码对.模拟验证演示在此为Example我们新建站点域名:nginx_basic_auth.msy.plus登录名:admin密码:12345678仅供演示,生产环境不能使用这个很简单的密码生成测试文件echo"
welcometonginx_basic_auth.msy.plus
》>>./nginx_basic_auth/index.html配置nginx的httpbasicauthentication在nginx.conf中查看是否有对conf.d目录的支持。如果不存在,则添加include/usr/local/soft/nginx-1.18.0/conf/conf.d/*.conf;说明:在生产环境中,为了方便管理,每台服务器都会放到一个专门的conf文件中,不混在一起全部写入nginx在.conf中不方便修改搜索创建网站服务器的server文件{auth_basic"lhdtest.comadmin";auth_basic_user_file/usr/local/soft/nginx-1.18.0/conf/conf.d/admin.pwd;听80;server_namenginx_basic_auth.msy.plusroot/data/site/admin/html;indexindex.htmlindex.shtmlindex.htm;access_log/data/nginx/logs/admin.access_log;error_log/data/nginx/logs/admin.error_log;}生成密码nginx只需要一个密码文件进行校验,密码文件在什么地方生成无关紧要,只需要一个能生成key的方法即可。方法有很多,可以用python或者go或者用c,当然也可以用各种工具辅助生成。选择您喜欢的以下生成工具之一。使用htpasswd生成密码。使用openssl生成密码。使用python生成密码来测试效果。进入网站,输入正确的用户名和密码即可进入。如果你对网站上的nginx配置项不了解,可以看这里。本系列文章将带您深入了解nginx基本登录认证(包括所有配置步骤和深度解析),让您深入了解nginx基本登录认证:使用htpasswd生成密码,给您深入了解nginx基本登录认证:使用openssl生成密码深入了解nginx基本登录认证:使用python生成密码参考nginx配置禁止反向代理特定路径下nginx配置禁止访问目录或目录中的文件nginx登录认证安全吗?Centos安装htpasswd_Nginx配置http基本认证(BasicAuth)使用htpasswd