
使用Vaultwarden自建个人密码管理器
需要的条件
一台国内/国外服务器
一个国内/国外的域名(如果没有可以参考最下面的自签名IP证书实现HTTPS访问)
注意,如果服务器与域名必须同时为国内或者国外的。混搭是会出现问题的(可以去常见问题处查看混搭的下场)。
使用1panel一键安装
手动安装好几次之后才发现1panel面板是自带Vaultwarden的。
1、安装1panel
根据操作系统一键安装即可。
2、应用商店安装Bitwarden
应用商店里的bitwarden,实际上就是Vaultwarden。
至少写这篇文章时是的。(2024年11月13日18:10:27)。
不需要勾选端口对外访问,也不需要编辑compose文件,首先安装好。
3、配置反向代理
前往你的DNS配置里,我这里是Cloudflare,添加一条指向密码服务器的A记录(IPV6地址是AAAA记录)。
然后回到1panel面板中,前往网站页面,配置反向代理
然后申请一个SSL证书(这一步其实不是很需要,1panel有自签名证书,但是还是申请一个比较好)。
申请完成证书后启动https连接。
4、访问域名,创建账号
请确保如下条件满足:
服务器与域名处于同一地区,即国内服务器配置国内实名的域名,国外服务器配置国外的域名。
如果是国内的域名必须实名并且过备案,不然概率(十次有9次)会被拦,国外域名忽略此条。
按照前面的步骤配置好了。
然后直接访问域名就可以了。
5、安装插件,连接服务
在登录网页端后,他会提示你安装插件,点击就自动安装。
当然,如果你错过了,也可以去各个浏览器的插件商店里去安装。
由于写这篇文章时,edge插件商店里的该插件消失了,所以放不了链接。
edge也可以通过访问谷歌浏览器插件的方式安装。
安装好之后,在登录界面选择自托管。
然后在URL选项输入https://你的域名
。
后面无需加/,输入完成保存即可。
之后使用你自己创建的用户名密码登录即可。
6、导入密码
在浏览器设置栏处搜索密码,不同浏览器位置不同,但是没太大区别。
点击去后选择导出密码
edge:
谷歌:
然后打开bitwarden浏览器插件,选择设置-密码框-导入密码:
格式选择chrome(CSV),选择导出的密码文件,点击导入数据即可
7、关闭注册,启用邮箱验证
以上功能无误时,就来到最关键的一步了。
为了密码库的安全性着想,以及你万一把主密码忘了,那这一步可太有用了。
回到1panel面板里,选择容器,点击更多,选择编辑
滑到最下面,来到编辑环境变量处
你需要在环境变量里添加如下内容(记得删注释):
# 禁止新用户注册
SIGNUPS_ALLOWED=false
# SMTP配置,用于发送邮件
SMTP_HOST=SMTP服务商提供的邮件服务域名
SMTP_FROM=发邮件用的邮箱
SMTP_PORT=SMTP服务商提供的域名
SMTP_SECURITY=force_tls
SMTP_USERNAME=发邮件用的邮箱(和上面那个一样就行)
SMTP_PASSWORD=申请SMTP服务时的tooken/key或者邮箱密码(大部分SMTP服务都是需要KEY的)
# 服务器的域名
DOMAIN=https://你的密码服务域名
添加完成后点击确认,等待容器重启后就可以了。
重启完成后访问你的密码服务网页,然后他会让你进行邮箱验证。
手动安装
手动安装比较繁琐,并且不支持自动更新,需要你本人实时关注官方动态,推荐1panel安装。
创建Vaultwarden工作目录
找个合适的位置,一键复制
mkdir -p ~/vaultwarden
cd ~/vaultwarden
创建数据目录
一键复制
mkdir -p ./vw-data
创建Docker Compose文件
一键复制
vim docker-compose.yml
services:
vaultwarden:
image: vaultwarden/server:latest
container_name: vaultwarden
restart: always
volumes:
- ./vw-data:/data
env_file:
- config.env
ports:
- "3721:80"
创建环境变量配置文件
一键复制
vim config.env
# 是否允许用户注册,先允许,等待创建好用户后回来修改成false
SIGNUPS_ALLOWED=true
# SMTP配置,用于发送邮件
SMTP_HOST=SMTP服务商提供的邮件服务域名
SMTP_FROM=发邮件用的邮箱
SMTP_PORT=SMTP服务商提供的域名
SMTP_SECURITY=force_tls
SMTP_USERNAME=发邮件用的邮箱(和上面那个一样就行)
SMTP_PASSWORD=申请SMTP服务时的tooken/key或者邮箱密码(大部分SMTP服务都是需要KEY的)
# 服务器的域名
DOMAIN=https://你的密码服务域名
# 数据库路径
DATABASE_URL=/data/vaultwarden.db
# 服务器线程数
ROCKET_WORKERS=10
# 是否启用Web客户端
WEB_VAULT_ENABLED=true
# 日志配置
LOG_LEVEL=warn
EXTENDED_LOGGING=true
LOG_FILE=/data/bitwarden.log
启动Vaultwarden
docker-compose up -d
更新Vaultwarden
docker-compose pull
docker-compose up -d
停止Vaultwarden
docker-compose down
以上为所需要的命令,一键复制粘贴即可,不过上面没有写反向代理过程,记的配置反向代理。
为什么需要个人密码管理器
随着接触的网站或者应用越来越多,账号也越来越多,而大多数人可能会采取两种方法:
所有网站/应用采取同一密码
干脆使用浏览器自带的自动保存
以上的弊端很明显,当你所有网站采取统一密码时,一旦其中一家发生密码泄露,或者你不小心被钓鱼网站骗到密码,那么,你所有的账号此时都会变得不再安全。
而当你使用浏览器自带的自动保存时,很容易出现忘记了密码而无法找回。并且,浏览器存储的密码保存在本地,是可以使用工具一键脱库的。以下为效果演示:
而这时,就需要个人密码管理器了。
常见问题
服务器与域名混搭
配置完反向代理后显示如下页面:
被墙了,此时回到你的DNS供应商那里,例如在.cloudflare,将TLS改为灵活,然后你再去访问
你会发现出现如下标题:
打开开发者模式,查看未被加载的连接,手动点进去,会发现:
出现这样的问题,如果是国内的域名或服务器,还是尽快备案的好。
未备案的情况下,如果服务器或域名都是国外的就不会出现这种问题。
连接非常慢,十次连接9次错误,勉强成功一次
域名没备案导致的。
没来得及截图,因为发现问题原因所在的时候我就已经把环境重装了。
验证方法:自签名IP,使用IP进行https访问,你会发现IP访问完全没问题。