编辑
2024-07-17
技术相关
00
请注意,本文编写于 333 天前,最后修改于 333 天前,其中某些信息可能已经过时。

目录

Apache/Nginx 自带401密码验证,相较于开发一套登录系统,更为简单方便,下面来说说如何生成密码以及如何启用。
htpasswd和openssl安装
htpasswd
安装软件
生成/修改/删除密码
openssl
安装软件
生成密码
启用 401 密码验证
Apache
Nginx

Apache/Nginx 自带401密码验证,相较于开发一套登录系统,更为简单方便,下面来说说如何生成密码以及如何启用。

htpasswd和openssl安装

htpasswd

image.png

安装软件

bash
# yum install httpd-tools -y #适用 centos $ sudo apt-get install apache2-utils -y #适用 ubuntu

生成/修改/删除密码

bash
$ htpasswd -c /var/www/html/.htpasswd user1 #回车会要求输入两遍密码,会清除已有的所有用户 $ htpasswd -bc /var/www/html/.htpasswd user1 password #不用回车,直接指定 user1 的密码 为password $ htpasswd -b /var/www/html/.htpasswd user2 password #添加一个用户,如果用户已存在,则是修改密码 $ htpasswd -D /var/www/html/.htpasswd user2 #删除用户

/var/www/html/.htpasswd 是验证用户密码存储的文件位置

openssl

安装软件

一般系统默认自带,如果是最小化安装,可以执行下列命令安装

bash
# yum install openssl openssl-devel -y #适用 centos # apt install openssl openssl-devel -y #适用 ubuntu

生成密码

bash
# printf "your_username:$(openssl passwd -crypt your_password)\n" >> /var/www/html/.htpasswd

启用 401 密码验证

Apache/Nginx 默认已编译密码验证模块,如 Nginx 是 ngx_http_auth_basic_module,如果没有开启 以重新编译加上开启参数即可。

Apache

在配置文件中将需要保护的路径 添加 并开启 basic 认证:

bash
<Directory /data/webroot/mail_admin > ......         AuthType Basic         AuthName "Authority Required" # 验证时的提示信息,但并非所有终端都支持显示         AuthUserFile /var/www/html/.htpasswd         Require user admin ...... </Directory>

重启生效。

Nginx

同样在需要保护的地方添加 basic 认证:

bash
...... location / ....... auth_basic "Authority Required"; # 验证时的提示信息,但并非所有终端都支持显示 auth_basic_user_file /var/www/html/.htpasswd ; ....... } ......

同样重启生效。

本文作者:Kevin@灼华

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!