使用htpasswd设置web密码

网页验证密码可以通过nginx的ngx_http_auth_basic_module模块进行配置,但生产账号和密码则需要用到htpasswd这个工具

一、安装htpasswd

1
2
3
yum -y install httpd-tools # centos安装
htpasswd -c /usr/local/nginx/passwd $USER_NAME

二、使用

htpasswd支持的参数如下:

  • -c: 创建一个加密文件
  • -n: 不更新加密文件,只将htpasswd命令加密后的用户名密码显示在屏幕上
  • -m: 默认htpassswd命令采用MD5算法对密码进行加密
  • -d: htpassswd命令采用CRYPT算法对密码进行加密
  • -p: htpassswd命令不对密码进行进行加密,即明文密码
  • -s: htpassswd命令采用SHA算法对密码进行加密
  • -b: htpassswd命令行中一并输入用户名和密码而不是根据提示输入密码
  • -D: 删除指定的用户

2.1 htpasswd密码配置

利用htpasswd命令添加用户: htpasswd -bc ./.passwd username pass
在原有密码文件中增加下一个用户: htpasswd -b ./.passwd onlyzq pass
利用 htpasswd 命令修改密码: htpasswd -D .passwd username 或指定密码 htpasswd -b .passwd username pass
用htpasswd命令删除用户名和密码: htpasswd -D .passwd username

2.2 在nginx中启用密码访问

1
2
3
4
5
6
7
8
server {
listen 80;
server_name localhost;
... ...
auth_basic "Please input password";
auth_basic_user_file /usr/local/nginx/passwd;
...
}