nginx开启auth 密码属于便宜又好用的鉴权方法,特别部署在公网的服务,加一层auth 密码,安全性大幅提升,部署也简单

修改nginx配置

只需要增加2行,在server /http /location 都可以

1
2
auth_basic "Please input password";      ##输入用户名密码提示框
auth_basic_user_file /etc/nginx/conf.d/auth_pwd;  ##配置用户名密码验证文件路径

生成密码

有两种软件可以生产密码,是一个apache 带的 htpasswd ,要单独安装,另外一个openssl 自带工具,装有sshd的linux都带有

密码生成方式如下

openssl passwd 密码明文

实际举例

1
2
3
4
5
>>openssl passwd good@21
>>kqG8JU.QRnwdQ
#然后执行
>>echo -n "wangping:kqG8JU.QRnwdQ" > xxx.auth
#把xxx.auth 配置到nginx conf里面即可

常见问题

  1. auth_basic_user_file 配置的路径不对,nginx不会有报错信息,这点比较难发现,配置的时候要特别留意
  2. Chrome 一次输错密码之后,不会重新弹出对话框了,测试的时候可以使用chrome 无痕窗口,这样每次都会弹出密码输入窗口