把三百多个密码搬回自己家:一次 Vaultwarden 自建记录

这几年我在几个主流密码管理方案之间来回搬家。上一个让我安顿下来的是 Enpass,纯粹因为家里人的应用商店订阅能直接解锁高级版;直到订阅涨价,我们一致决定不续了。手里三四百个密码,又得找下一处落脚点。

环顾一圈,每家都有各自的堵点:1Password 好是好,错过拼车价就只能付高昂订阅;LastPass 的安全事件太多,让人望而却步;KeePass 开放但跨平台体验碎。回到 Bitwarden 算不上最优,它要额外付费才能用 TOTP,客户端体验也一直不算拔尖。但 Bitwarden 有个别家没有的便利——它可以自托管,而我家里正好有一台 24 小时开机的 NAS。

把三百多个密码搬回自己家:一次 Vaultwarden 自建记录(图1)

自托管的选择是 Vaultwarden,一个由社区维护的非官方 Bitwarden 后端。相比官方那套基于 .NET 和笨重数据库的自建后端,它极其轻巧,常驻内存通常不过百兆,核心功能齐全,还能直接从后端解锁 TOTP 管理、多人共享等高级功能。部署照旧用 Docker:成品 NAS 在图形化的 Docker 界面里就能搞定,不必去看 Compose 文件。唯一要记得的是把环境变量里的 DOMAIN 配成你打算从公网连进来的域名。

部署完,用浏览器打开 IP 和端口能看到 Vaultwarden 页面,但这还不代表能用。不是因为哪一步错了,而是现代浏览器有一道“安全上下文”的强制策略:密码管理器网页端依赖的 Web Crypto API,只有在可信网络里才允许调用,家庭内网常见的 HTTP 连接会被判定为不安全,Vaultwarden 发现调不动接口,就直接弹警告。想让它在公司、在外面都能用,就必须走可信的 HTTPS。

Vaultwarden 自带 HTTPS,但官方 Wiki 明确说这条路不成熟,还是建议用反向代理配 Let's Encrypt 或 Cloudflare 证书。问题在于,国内家宽大多是大内网,做反向代理对网络环境有要求。要是你家也是低等级 NAT、或者单纯想省事,Cloudflare Tunnel 是个很舒服的解法:把内网服务安全地映射出去,顺手把证书的麻烦一起解决,还白送 DDoS 防护和访问控制。没有域名也能搭隧道,但官方给的是临时地址,又长又难记、重启就变,所以还是买个便宜域名托管到 Cloudflare 更省心——以后家里所有内网服务都能挂在这个域名下的二级域名上用。

把三百多个密码搬回自己家:一次 Vaultwarden 自建记录(图2)

客户端这边,浏览器插件因为生态和安全的原因,目前仍然只有 Bitwarden 官方版可用,装好后选“自托管服务”,填上刚发布的二级域名登录即可。移动端我最后换了第三方开源客户端 Keyguard,它覆盖 Windows、macOS、Linux、Android 和 Wear OS,同时兼容 Bitwarden 和 KeePass 数据,界面和动画都比官方客户端利落。它还能接管 Android 版 Chrome 的第三方自动填充(Android 14 起开放的能力),并且把密码库本地保存得很稳,哪怕 Cloudflare 网络波动连不上自建库,也能照常取用。9 月初起主流密码服务陆续支持通行密钥迁移,在 Keyguard 里点开用户名、选“从其他应用导入”,就能把通行密钥一起迁过来,省去重新配置的麻烦。

把三百多个密码搬回自己家:一次 Vaultwarden 自建记录(图3)

把服务搭起来、前后端链路跑通,听起来复杂,但跑通过一次之后,再搭别的服务基本是万变不离其宗。密码在这儿,归属感也在这儿——至少备份、迁移,以及哪天想换个客户端,都由自己说了算。

加载中~

本文转自网络,如有侵权请联系邮箱:Administrator@systame.cn