Caddy网站设置访问密码
Contents
有时候,明明搭建了一个网站,但还不想让无关的人看,咋办?当然是设置访问密码!
当然有很多这样的应用场景,比方说:
- 把家里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