利用Apache htaccess文件创建密码保护网站隐私目录

在生产环境中,各种各样的网站目录限制场景非常之多,这时就可能需要用到Apache htpasswd工具来实现,下面我将一一讲解如何使用。

先使用Apache htpasswd命令创建一个密码文件,htpasswd的命令用法如下:

-c # 创建密码文件,若该文件已存在,它会重写并删除原有内容;
-n # 不更新密码文件,直接显示密码;
-m # 使用MD5加密(默认);
-d # 使用CRYPT加密(默认);
-p # 使用普通文本格式的密码;
-s # 使用SHA加密;
-b # 命令行中一并输入用户和密码,而交互性,生成时可见密码明文;
-D # 删除指定的用户;

创建添加一个用户名为:renwole 密码为:renwole 的密码文件:

$ htpasswd -c .accpasswd renwole
New password:
Re-type new password:
Adding password for user renwole

注意:创建的密码 .accpasswd 文件名可自定义。

使用cat查看生成的内容:

$ cat .accpasswd
renwole:$apr1$4owQhqtn$ElCDIh0sfR.ZFzeaY9sDw0

注意:生成的密码是已经加密过的,所以别弄混掉了。

添加多个账号:

$ htpasswd -b .accpasswd renwolecom password-renwolecom
Adding password for user renwolecom

查看生成的多个账号和密码:

$ cat .accpasswd
renwole:$apr1$4owQhqtn$ElCDIh0sfR.ZFzeaY9sDw0
renwolecom:$apr1$3zzGmKtR$jKKCbU2nVEQZFz9mtEXE./

删除用户:

$ htpasswd -D .accpasswd renwolecom
Deleting password for user renwolecom

查看删除后的密码文件:

$ cat .accpasswd
renwole:$apr1$4owQhqtn$ElCDIh0sfR.ZFzeaY9sDw0

创建密码保护区域

有了密码文件之后,我们可以使用.htaccess文件创建保护区域。

将以下内容保存为 .htaccess 文件,这样我们就可以使用该文件建立保护区域。

$ vim /apps/web/renwolecom/phpMyadmin/.htaccess

AuthType Basic
AuthName "restricted area"
AuthUserFile /usr/local/apache/conf/.accpasswd
require valid-user

将该文件放在需要保护的目录下即可。因此我放在了网站根目录的phpMyadmin目录,这样访问此目录,就会出现弹窗验证,输入生成的用户名和密码即可。