Contents

Caddy网站设置访问密码

Contents

/blog/电脑折腾/附件/VPS与建站/Caddy建站指南.svg 有时候,明明搭建了一个网站,但还不想让无关的人看,咋办?当然是设置访问密码!

当然有很多这样的应用场景,比方说:

  • 把家里NAS上的某个功能穿透到外网了,但是只想自己能看到。
  • 把宝宝相册放到VPS上了,不想让无关人员看到。
  • 等等

如何设置呢?总不能自己写一个身份验证吧(那也太麻烦了),幸运的是,Caddy自带身份验证的功能。

Caddy支持在访问网站前通过用户名和密码进行身份验证,在配置文件中,密码是以HASH的形式加密的,并不是储存的明文,因此需要先获取自己密码的HASH值:

首先想一个密码,然后在用SSH工具连接上VPS,输入

caddy hash-password

之后按照提示,输入两遍密码,就会生成一个HASH密码。把这个HASH密码记下来。

修改VPS上的caddyfile(在/etc/caddy/Caddyfile),在网站设置里添加basicauth,例如没有身份验证的网站设置是:

xl.hotine.wang {
    reverse_proxy 192.168.193.27:2345   #这是一个反向代理
}

修改成下边的样子以增加身份验证

xl.hotine.wang {
    reverse_proxy 192.168.193.27:2345
    basicauth  {
    admin $2a$14$hWxxxxzQUxzmf0a8pu5NxxxxockwxHxHSjIiQ3KLDnGY67lVXmVw2
    }
}
  • admin 是用户名
  • $2a$14$hWxxxxzQUxzmf0a8pu5NxxxxockwxHxHSjIiQ3KLDnGY67lVXmVw2 这一堆是HASH密码
  • HASH通过命令caddy hash-password yourpassword 生成

使用以下命令重启caddy即可生效:

sudo systemctl stop caddy
sudo systemctl start caddy