Nginx 使用 ngx_http_auth_basic_module 模块支持 HTTP 基本身份验证功能

nginx 配置

比如需要/api 路径下的资源需要认证

1
2
3
4
location ^~ /api {
auth_basic "authentication";
auth_basic_user_file conf.d/.htpasswd;
}

配置密码文件.htpasswd

两种方法二选一

使用 htpasswd 生成

1
2
3
4
5
# Ubuntu or Debian
apt install apache2-utils

# Rhel or CentOS:
yum install httpd-tools

生成密码, 密码文件为 .htpasswd

1
htpasswd -bcd .htpasswd username password

使用 openssl 生成

echo -n xxx 不打印换行符

1
2
3
echo  -n 'username:' >> .htpasswd
openssl passwd -1 password >> .htpasswd
# -1 参数可以换成 -2 -3 ... -6, 数字越大,密码越长(md5算法). 还可以 -apr1 (Apache variant of the BSD algorithm).

openssl 生成的密码也可以用到 linux 的/etc/shadow 里面