自建密码管理器Bitwarden完全指南:无需购买SSL证书

为什么需要自建密码管理方案
随着数据安全事件频发,密码管理器已成为现代数字生活的必备工具。但市面上的主流商业产品——如1Password、Dashlane、Bitwarden官方云服务——大多采用订阅制模式。对于有一定技术基础的用户而言,将这些敏感数据存储在第三方服务器上始终存在隐私隐患。更重要的是,商业服务往往绑定了复杂的账号体系、功能限制,甚至在你最需要使用的时候突然涨价。
自建密码管理器,本质上是在所有权、隐私性和成本控制三者之间取得最佳平衡。本文将聚焦如何在本机或私有服务器上部署Bitwarden兼容服务,全程无需购买域名或SSL证书,实现真正意义上的”我的数据我做主”。
商业密码管理软件的普遍痛点
商业密码管理服务虽然省心,但普遍面临三大问题:价格随时间推移持续上涨;隐私数据存储在他人控制的服务器上;功能则受到付费档位的严格限制。自签名SSL证书方案恰好能绕过这些约束——成本为零,数据完全本地化,且功能上不做任何阉割。
推荐方案一:Vaultwarden(Bitwarden RS)
简介
Vaultwarden是Bitwarden官方认可的非官方Rust实现,原名bitwarden_rs。它完全兼容Bitwarden客户端协议,支持所有官方平台客户端(桌面、手机、浏览器插件)。
核心功能
- 完整的密码管理、安全笔记、身份信息存储
- 支持TOTP双因素认证生成器
- 兼容Bitwarden API,所有客户端无缝连接
- 资源占用极低,适合长期运行
优势

相比官方Bitwarden服务,Vaultwarden最显著的优势是资源消耗极低。在Arch Linux环境下,配合精简的Docker容器部署,内存占用可控制在数百MB以内,且启动速度快、稳定性强。更重要的是,它原生支持自签证书,无需额外付费购买SSL证书即可启用HTTPS加密传输。
劣势
非官方维护版本,虽然兼容性好,但偶尔存在与新客户端版本同步延迟的情况。部分高级功能(如YubiKey硬件令牌完整支持)可能存在细微差异。
适用场景
适合个人或小团队在私有服务器上部署,追求低成本、高隐私的密码管理方案。
推荐方案二:KeePassXC
简介
KeePassXC是KeePass密码管理器的跨平台分支,采用本地加密数据库文件存储数据,无需依赖任何远程服务器。
核心功能
- 纯本地存储,数据库文件完全自主控制
- 强大的浏览器集成,支持Auto-Type自动填充
- 支持TOTP、YubiKey等多种认证方式
- 跨平台(Windows、macOS、Linux)
优势
零网络暴露风险,数据库文件保存在本地磁盘或加密云盘中,彻底摆脱对远程服务器的依赖。开源透明,代码可审计。
劣势
同步功能需要自行搭建方案(如云盘同步),跨设备体验不如云端服务流畅。自签证书方案对其不适用——因为它根本不需要服务器。
适用场景
对隐私有极致要求的用户,或不希望任何数据离开自己设备的人。
推荐方案三:pass(标准Unix密码管理器)
简介
pass是遵循Unix哲学的命令行密码管理器,使用GPG加密存储每个密码为独立文件,完美融入Linux工作流。
核心功能
- 基于GPG的端到端加密
- Git版本控制集成,密码变更可追溯
- 命令行原生支持,易于脚本化操作
- 轻量级,无图形界面依赖
优势
与Linux系统的深度集成是其最大亮点。通过Git可以轻松实现多设备同步,且密码库的结构完全透明,随时可用ls、cat等命令查看和编辑。
劣势
门槛较高,需要熟悉命令行操作。缺乏图形界面的便捷性,移动端支持较为简陋。
适用场景
资深Linux用户、DevOps工程师等偏好命令行操作的群体。
横向对比
| 软件名 | 免费额度 | 适用场景 |
|---|---|---|
| Vaultwarden | 完全免费 | 自建服务器,追求客户端兼容性 |
| KeePassXC | 完全免费 | 纯本地存储,无需网络的场景 |
| pass | 完全免费 | Linux命令行用户,注重Git集成 |
选型建议
如果你已有或计划拥有自己的服务器,Vaultwarden是最优选择——它在兼容性和部署便利性上达到了最佳平衡。纯个人用户且没有服务器需求,KeePassXC更能满足隐私焦虑。而对于习惯终端操作的技术用户,pass提供了最纯粹的Unix式体验。

安装与上手
第一步:安装Docker与Docker Compose
pacman -S docker docker-compose
systemctl enable --now docker
docker version # 验证安装
第二步:配置代理加速镜像拉取
如果你的环境需要代理访问外网,配置Docker代理是关键一步。找到物理机代理的局域网地址和端口(如192.168.131.1:7890),创建代理配置文件:
mkdir -p /etc/systemd/system/docker.service.d
vim /etc/systemd/system/docker.service.d/http-proxy.conf
写入代理配置后重启Docker服务。
第三步:拉取镜像并启动容器
docker pull vaultwarden/server:latest
docker run -d --name vaultwarden \
-v /bw-data/:/data/ \
-p 8080:80 \
-e WEBSOCKET_ENABLED=true \
-e DOMAIN=https://你的地址 \
vaultwarden/server:latest
第四步:自签SSL证书启用HTTPS
Bitwarden强制要求HTTPS,自签证书可以完美解决。先安装所需工具:
pacman -S openssl
参考原文中详述的openssl生成RSA私钥流程,完成证书签发后即可替换默认的HTTP服务。

值得注意的是,自签证书会触发浏览器安全警告,但这并不意味着你的密码不安全——TLS加密通道是真实存在的,浏览器提示仅因证书未经权威机构认证。对于内网或私有部署,这一警告完全可以忽略。
参考资料:原文链接