在Nginx,Apache下网站目录加密设置

最近在用h5ai做了一个资源分享网站wget.5752.me,但是毕竟有些属于私人文件,所以想给网站目录加密,方便对于自己一个私人资源的管理。教程如下:

Apache:

Apache对网站目录加密是用.htaccess文件进行设置,在你需要加密的目录下,增加一个.htaccess文件,文件中写入:

AuthType Basic
AuthName "WORKING CENTER" #此处是目录打开的欢迎语
AuthUserFile /home/user/.htpasswd #此处目录位置自定义,不能被下载就可以
Require valid-user

再生成相应的密码文件.htpasswd(该文件名可以随意,不过必须与.htaccess 中相同):

username:password

以上是. htpasswd 中的内容,username 部分是用户名(可自定义),“:” 号后面的是加密后的密码,该密码可以用一个脚本文件生成,先创建一个pw.pl文件,在其中写入:

#!/usr/bin/perl
usestrict;
my
$passWord=$ARGV[0];
print
crypt($passWord,$passWord)."\n";

然后执行

chmod +x pw.pl
./pw.pl password #其中password可以换成你自己的密码

如果设置没问题,会返回如下信息

papAq5PwY/QQM

papAq5PwY/QQM 就是 password 被加密后的密码。然后将上面用 perl 生成的加密后的密码,按照

username:password

的格式写到.htpasswd 文件中,然后放置之前设置的对应目录就完成了加密。 注意.htaccess 文件是放在需要加密的目录下,上传好后Apache不需要重启,.htpasswd密码文件不要放在网站目录下,路径不要写错! 该密码文件有相关工具可以生成,htpasswd命令,比如:

htpasswd –bc .htpasswd user passuser

这样就会在当前目录下生成带有用户名为user,密码为passuser的.htpasswd文件。

NGINX:

Nginx网站目录加密要配置conf文件,可以编辑/usr/local/nginx/conf/vhost/www.5752.me.conf:

server {
listen 80;
server_name runlu.com www.runlu.com;
#HTTP重定向至HTTPS
rewrite ^/(.*) https://www.runlu.com/$1 permanent;
}
server {
listen 443;
server_name runlu.com www.runlu.com;
root /home/wwwroot/www.runlu.com;
#为h5ai添加重定向
index index.php /_h5ai/public/index.php;
#启用SSL,定义证书链与私钥所在路径
ssl on;
ssl_certificate /home/wwwroot/fullchain.pem;
ssl_certificate_key /home/wwwroot/privkey.key;
location / {
try_files $uri $uri/ =404;
}
#禁止访问.ht开头的任何文件
location ~ /\.ht {
deny all;
}
#对/Enjoyself目录使用密码认证,并使用.htpasswd文件保存密码
location ^~ /Enjoyself/ {
auth_basic "Password required";
auth_basic_user_file /home/wwwroot/www.runlu.com/Enjoyself/.htpasswd;
}
}

上面的示例是加密网站目录下的Enjoyself文件夹,其下的目录文件都将被加密。同样记得把.htpasswd文件放入对应目录下,语法跟Apache一样。 重启nginx

/etc/init.d/nginx restart


【上一篇】 【下一篇】

Posted in 教程 ,软件 | Tags: , ,

0 条评论

添加评论

[ Ctrl + Enter ]