首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Nginx htpasswd 文件加密访问

Nginx htpasswd 文件加密访问

作者头像
2Broear
发布于 2024-03-12 10:11:08
发布于 2024-03-12 10:11:08
9120
举报

加密文件

18年的时候当时为了给朋友下东西,把一些软件放到了之前的服务器上,后来突发奇想想应该给下载的文件加个访问密码,然后找到了 htpasswd 这个东东,后来折腾了些时间弄好了之后发现用的并不多(毕竟小水管,而且我以前发现只要使用http请求就可以跳过验证,以为是配置原因特无语,不过貌似现在又好了..),今天去看发现下载文件夹没了。。但是配置文件还在,所以打算再把htpasswd重新记录下,以后也方便一点。

以后 download 页面的文件首选服务器下载

安装

在 nginx centos7 环境下使用 yum 命令安装 htpasswd:

代码语言:javascript
复制
                             yum -y install httpd 

使用

添加新账户

创建一个用户并设置密码(新建并覆盖.htpasswd文件)New password:后输入要创建的密码,Re-type new password:后重复输入创建的密码即可成功添加(添加成功后的文件在niginx conf目录)

代码语言:javascript
复制
                             [root] htpasswd -c /usr/local/nginx/.htpasswd admin 

添加其他账户

使用 -b 命令在已创建账户文件基础下添加另一个账户(账户名后跟密码,无交互)

代码语言:javascript
复制
                             [root] htpasswd -b /usr/local/nginx/.htpasswd guest 0 

创建与新建账户

删除账户

使用 -D 命令在已创建账户文件基础下删除一个指定账户(htpasswd无法修改账号密码,需要-D删除后再-b添加)

代码语言:javascript
复制
                             [root] htpasswd -D /usr/local/nginx/.htpasswd guest 

其他

nginx 配置

path 为加密文件夹的路径,后面 .pvt | zip 为需要加密文件的格式,auth_basic 为加密弹窗标题,auth_basic_user_file 为 .htpasswd 加密文件路径(用于验证,第一次 -c 时的路径)

代码语言:javascript
复制
location ~ ^/path/.*\.pvt|.zip$ {
    auth_basic "Restricted .pvt.zip-files";
    auth_basic_user_file /usr/local/nginx/.htpasswd;
  }

配置完成后,访问相关文件夹的指定加密文件时会弹出验证

默认弹窗

401验证不通过会自动跳转到默认的 401 页面,如需自定义 401 页面,需要在以上 location 后跟以下配置项即可

代码语言:javascript
复制
error_page 401 /401.html;
    location = /401.html {
      auth_basic off;
  }

指定 401 页面

意外发现

测试下载url时发现全站链接加了/后直接401了,排查配置项发现注释掉了重定向..

Bug-1~

以上,有问题评论区反馈。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022/06/16 ,如有侵权请联系 cloudcommunity@tencent.com 删除
目录
  • 加密文件
    • 以后 download 页面的文件首选服务器下载
  • 安装
  • 使用
    • 添加新账户
    • 添加其他账户
    • 删除账户
  • 其他
    • nginx 配置
  • 意外发现
    • Bug-1~
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档