Bitwarden 是一款自由且开源的密码管理服务,用户可以在加密的保管库中存储敏感信息(例如网站登入凭据)。Bitwarden 平台提供有多种客户端应用程序,包括网页用户界面、桌面应用、浏览器扩展、移动应用以及命令行界面。Bitwarden 提供云端托管服务,并支持自行部署解决方案。
Vaultwarden 是一个用于本地搭建 Bitwarden 服务器的第三方 Docker 项目。Vaultwarden 兼容 Bitwarden 官方客户端,仅在部署的时候使用 Vaultwarden 镜像,桌面端、移动端、浏览器扩展等客户端均使用官方 Bitwarden 客户端。Vaultwarden 很轻量,对于不希望使用官方的占用大量资源的自托管部署而言,它是理想的选择。
Bitwarden 仅支持 https 访问
缘由
之前密码都是使用 Google Chrome 的密码存储进行管理,明文存储在本地计算机上面,这意味着如果不小心安装了第三方软件,那么就存在泄露的可能性,因此,Google Chrome 的密码存储并不是完全安全的,虽然基本很少安装乱七八糟的软件,但万一哪天泄露了呢?那可真是哭都来不及了~
选择密码存储软件的条件是,首先必须开源,其次数据必须在自己手上,还有用户量大,这样一看,排在前面的也就 Bitwarden 了,Bitwarden 提供自建服务,这个自建服务是通过 shell 脚本控制,并需要 docker 服务,用起来肯定会干扰本机环境,Bitwarden 应该也意识到这种 self-hosted 方式不太方便,现在提供了一个打包好的测试版镜像,这样所有的数据都在容器里面,我们只需要将其中的 volume 映射到本地即可,测试版,意味着出现 Bug 的概率大,而我是想部署一个稳定的密码管理服务,它还处于 Beta 阶段,就不太适合目前的情况了。
Vaultwarden 是由社区开发维护的兼容 Bitwarden 的服务,GitHub 上 23k star,仍处于活跃状态,这不得不说是完美搭配
当然 Bitwarden 的付费服务也是很优惠的,对个人用户来说,Bitwarden 提供了一个免费的套餐,包含了基础功能,并且永久免费,无需额外操作。Bitwarden 是一个开源的企业级密码管理器,因此也值得信赖。当然,没有自己保管的好
在选择了 Bitwarden 作为密码管理软件之后,接下来就是部署 Vaultwarden 到本地或者 NAS 上。
部署 Vaultwarden
我选择了在群晖 NAS 机器上部署 Vaultwarden,和部署在本机差不多,都是通过 docker 来操作,简单的很
docker pull vaultwarden/server:latest
docker run -d --name vaultwarden -v /vw-data/:/data/ -p 80:80 vaultwarden/server:latest
截至本文撰写时(2023 年 3 月),最新的版本是 1.27.0
,允许提供一个 .env
文件,参考它的 Template
docker run -d --name vaultwarden -v /vw-data/:/data/ -v /.vw.env:/.env -p 8080:80 vaultwarden/server:latest
部署之后,就可以通过 ip + 8080 访问了,接下来,要使用 Bitwarden 的软件了,需要确保 Bitwarden 的客户端和服务器端版本一致,否则会出现 API 对应不上的情况
安装 Bitwarden
安装方式有很多,它支持桌面软件、浏览器、安卓苹果、命令行等终端,选择安装你需要的,理论上所有 Bitwarden 的客户端都应该支持自定义服务器地址,因为我目前只在 Windows 上使用 Bitwarden,所以只在桌面软件上进行了测试
HTTPS
Bitwarden 需要 https 才能访问,这意味着如果想要在本地使用 Bitwarden,需要一个域名 + ssl 证书,如果直接使用 IP 地址访问,那么似乎无法实现有效的 ssl 证书,尝试了很多方案,通过 IP 地址访问还是不得行,最终还是选择了域名。
如果你是在本机上部署的,那么可以很方便的使用 nginx-proxy 或者 nginx-proxy-manager 进行反向代理,但还是需要一个域名,将域名解析到本地 IP 地址,证书可以通过 acme.sh 生成或者直接使用前面两个容器来辅助生成
按照上面的步骤,解析到本地是无法直接访问的,因为 DNS 找不到内网地址,所以还需要一步,在 hosts 中指定将域名解析到本机地址,这样就可以访问了,Windows 上的 hosts 文件位于 C:\Windows\System32\drivers\etc\hosts
群晖上面可以很方便的进行反代,证书也可以直接上传或者生成
尝试过很多方案,最后都是需要域名,应该也可以从本地通过 openssl 生成证书,然后导入到浏览器
最后
密码对于个人来说,应该属于比较敏感的信息,因此它的安全应该至为重要,如果遇到问题,欢迎评论
评论 (0)