2021年5月8日更新
前两年我的复杂密码都是遵循一定的规律,然后简单密码都统一的。有一天在某个论坛上的帐号被盗后,就下定决心全部密码都修改一次,而且随机16~24位大小写字母+符号+数字,最终选择了 1Passwrod 来管理上百个复杂密码,而且在 ios 上体验最佳。
不过因为是和网友一起共享的家庭版,所以管理员可以在不经成员同意的情况下直接删除帐户,导致密码无法找回。还是得另外寻找一个简单易用的。无意间在 v2ex 发现有人推荐一个新的开源密码管理器 Bitwarden。在 GitHub 上有个项目叫做 bitwarden_rs,并且提供了 Docker 镜像。对机器配置的要求很低,而且 Docker 镜像体积很小,部署非常方便。
Docker
因为宝塔面板的 Docker 管理器在系统重启后就会无法启动,卸载重装还是会出现这种情况,似乎论坛有解决办法,但没去细看,还是直接 ssh 到服务器上直接安装吧。
更新 yum 软件源缓存,并安装 docker-ce。
sudo yum makecache fast
sudo yum install docker-ce
启动 Docker CE
sudo systemctl enable docker
sudo systemctl start docker
配置文件
为了方便使用宝塔备份数据,我在网站主目录中存放数据库文件,新建一个目录 Bitwarden:
mkdir /www/wwwroot/bitwarden && cd /www/wwwroot/bitwarden
准备配置文件:
vi config.env
根据需要修改下面的参数:
SIGNUPS_ALLOWED=true #是否开放用户注册;
DOMAIN=https://bitwarden.uefeng.com #Bitwarden 服务使用的域名
DATABASE_URL=/data/bitwarden.db #数据库在容器内的路径
ROCKET_WORKERS=10 #设置服务器线程
WEB_VAULT_ENABLED=true #是否开启 Web 客户端
准备服务描述文件:
vi docker-compose.yml
根据需要修改下面的参数:
version: '3'
services:
bitwarden:
image: vaultwarden/server:latest #使用 vaultwarden/server 最新镜像(2021年5月 Bitwarden_rs 更名为 vaultwarden。)
container_name: bitwarden
restart: always
volumes:
- ./data:/data #容器内的 /data 目录挂载到宿主机的当前目录下的 data 目录;
env_file:
- config.env
ports:
- "47878:80" #将容器内的 80 端口映射到了宿主机的 47878 端口;
在面板新建一个站点,站点目录就选择刚新建的 Bitwarden 目录,配置好域名证书,添加反向代理。
最后启动服务:
docker-compose up -d
用户注册和数据导入
启动服务后,通过刚配置好的域名,看到下图所示的登录界面,点击右下方的创建帐号。
登录之后在左侧栏的「工具」菜单中找到数据导入页面,不过直接导入还是会有些错乱,需要手工调整,也有高级版才能使用的 TOTP。
关闭用户注册和网页端访问
因为密码服务器是我一个人使用,所以在注册好帐号,导入数据后,就关闭了用户注册权限和网页端访问权限,前面生成的 config.env 中,调整以下两项值:
SIGNUPS_ALLOWED=false
WEB_VAULT_ENABLED=false
修改之后,需要重启 bitwarden 服务才生效,运行以下命令来删除并重新创建容器。因为之前就做好了 数据库映射,不用担心数据被删除。
docker-compose down && docker-compose up -d
手机客户端很简洁,功能足够使用了,当然 ios 端的体验还是比 andriod 端的要好很多。
现在 Bitwarden 服务也只是用于密码的二次备份了,免得哪天 1Password 的管理员不爽删库跑路了。
请问楼主是否有Bitwarden 安卓端的安装包,我用官方的安装后提示“Exception message:java.security.cert.CertPathValidatorException:Trustanchor for certification path not found.”
https://github.com/bitwarden/mobile/releases
可以去官方下载其他版本试试,没用过安卓端
部署好后,从本地bitwarden导出密码库为json和csv格式,都无法导入。
导入后会立即退出回到登陆页面,求解.......
(我部署在云服务器上,做了全站加速)
就是本地迁移到云服务器?或者你试试不导出导入,而是直接覆盖数据库看是否可以。
我用插件就够了,感觉放在我自己服务器里更不安全,而且我的重要密码都不备份网络,都单独搞表格记录。
感谢大佬教程,部署成功
请问可以转载吗
不知道在局域网中搭建私网的Bitwarden服务器会不会简单点
局域网内的步骤都一样的
多谢大佬回复,昨晚上看你教程局域网安装成功了,输入局域网地址也能访问到网页,但是注册账户显示错误,是不是域名证书没有添加?局域网该如何解决域名证书问题啊,求解答,。谢谢谢谢
看看你的 config.env 里面的参数有没打开用户注册。
只要你有域名,公网内网的证书申请都是一样的,推荐申请 Let’s Encrypt 泛域名证书。
请问文件夹是不是不支持二级目录。
不支持的,而且添加新密码的时候默认是“没有文件夹”选项
我联系了官方,官方说支持子目录,比如:
一级目录:客户资料
二级目录:客户资料/XX公司
你看看是不是官方才支持,我看了下自建的客户端和网页端都无法建立二级目录。
sudo systemctl enable docker
出现:Failed to execute operation: No such file or directory
怎么解决了?
centos 6? 试试 sudo chkconfig docker on
都是同一个客户端应该都支持哦。
文档:https://help.bitwarden.com/article/folders/#nested-folders-sub-folders
看了下文档,确实是支持。在立文件夹的时候命名:父目录/子目录。
别人攻击你自建服务器怎么办?
与外网隔绝,内网使用,偶尔同步一下更新的密码就好。
我之前也一直在找密码管理器,1P收费太贵,keepss mac不能同步,最后选择的safeincloud,多端同步,Bitwarden之前想搭建,但是太复杂就没有弄了。看到你的教程决定在玩玩,哈哈。
我也用的safeincloud,windows免费,安卓已经买了,还不错。用的坚果云的webdav
自己建的服务器如何长期保证稳定性……
我的 nas 是 24*7 在线的,也有多重备份,数据有更新的时候 VPN 回去同步一下即可。
锁定后,单独输入主密码,说密码失败,退出后,重新输入账号,密码没有问题,这是怎么回事求解答
服务端镜像没更新的原因,重新部署 bitwardenrs/server 最新镜像
谢谢 已经重新部署 解决问题
这个不错,有空在我本地的服务器试试。