Apache,Nginx对网站目录加密
之前有说到用h5ai做了一个资源分享,但是毕竟有些属于私人,所以想到给网站目录加密,方便对于自己一个私人资源的管理。教程如下:
Apache:
Apache对网站目录加密是用.htaccess文件进行设置,在你需要加密的目录下,增加一个.htaccess,文件中写入:
AuthType Basic
AuthName "WORKING CENTER" #此处是目录打开的欢迎语
AuthUserFile /home/user/.htpasswd #此处目录位置自定义,不能被下载就可以
Require valid-user
再生成相应的密码文件.htpasswd(该文件名可以随意,不过必须与.htaccess中相同):
username:password
以上是.htpasswd中的内容,username部分是用户名(可自定义),“:”号后面的是加密后的密码,该密码可以用一个脚本生成:
#!/usr/bin/perl
usestrict;
my
$passWord=$ARGV[0];
print
crypt($passWord,$passWord)."\n";
然后执行
chmod +x pw.pl
./pw.pl password
如果设置没问题,会返回如下信息
papAq5PwY/QQM
papAq5PwY/QQM就是password被加密后的密码。
然后将上面用 perl 生成的加密后的密码,按照
用户名:密码
的格式写到.htpasswd文件中,然后放置之前设置的对应目录就完成了加密。 注意:.htaccess文件是放在需要加密的目录下,上传好后Apache不需要重启,.htpasswd密码文件不要放在网站目录下,路径不要写错! 该密码文件有相关工具可以生成,htpasswd命令,比如:
#htpasswd –bc .htpasswd user passuser
这样就会在当前目录下生成带有用户名为user,密码为passuser的.htpasswd文件。
NGINX:
Nginx网站目录加密是通过nginx.conf配置文件来控制的,具体方法可以修改或加入配置到server段:
vi nginx.conf #打开nginx.conf文件
然后添加:
location ^~ /mm {
auth_basic "Nginx Passwd";
auth_basic_user_file /home/dotcloud/.htpasswd;
}
上面的示例是加密网站目录下的mm文件夹,其下的目录都将被加密;如果不希望递归加密,把前面的^~符去掉。 同样的记得把.htpasswd文件放入对应目录下,语法跟Apache一样。 注意:由于修改了nginx配置文件记得重启或重新加载配置文件!
- 原文作者:NyKO
- 原文链接:https://nyko.me/2015/09/27/passwd.html
- 版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。