自建BitWarden-强大的跨平台密码管理系统
前言(可跳过)
为了能够记住密码相信小伙伴们使用过很多密码管理器,比如手机、浏览器自带的密码管理软件,或者微信收藏、便签这种手动保存密码的方法。但是随着注册的网站越来越多,记忆密码会带来很多烦恼。很多密码可能会混淆,还有很多无关紧要的网站干脆就设置成 ”12356789“ 这样的弱密码,要么所有网站都使用同一个密码。这些做法无疑会带来安全性问题和密码遗失的窘境。
这些问题也困扰了我很久。因此,想要找到一款全平台自动同步的密码管理软件。调查了一下之后发现要么就是闭源的付费软件,要么就只能在部分平台进行同步。一次偶然,发现很多人都在讨论**Bitwarden**。搜索之后发现,这不就是我理想的密码管理软件吗?
Bitwarden有免费的套餐。如果不想折腾的朋友可以用他们家的免费套餐,使用的是他们的服务器,也是支持全平台的。缺点是数据不在自己手中,在支付宝都能崩的时代里我已经不相信官方的安全性,自建的话可以实现多重备份,不怕数据丢失。话不多说,开工!
自建方案
**方案一:**使用官方自建方案。缺点是使用两步验证器等高级功能还是需要付费获取密钥才能使用。如果不付费的话就只是做到了数据保留在自己手中。
**方案二:**使用第三方社区的替代方案。缺点是部分功能不完善(看了一下基本都是不用的功能),可能会出现稳定性和不兼容的问题。
下面两种方法都会分析给大家。一些自己踩过的坑也分析给大家。
预备
一台2c2g以上的服务器、域名、SSL证书(后续会出一期Certd SSL证书自动化部署更新系统,这里先挖个坑)、一点点docker知识。下面是官方的服务器配置要求:
方案一:官方自建
一、安装docker和docker compose(以Ubuntu22.04为例,已安装的可跳过)
安装Docker
-
更新包索引:
-
安装必要的包,以便通过HTTPS使用存储库:
-
添加Docker的官方GPG密钥:
-
设置Docker存储库:
-
更新包索引:
-
安装Docker CE:
-
启动Docker并设置开机自启动:
-
验证Docker安装是否成功:
安装Docker Compose
-
下载Docker Compose:
-
为Docker Compose二进制文件添加执行权限:
-
创建符号链接(可选):
-
验证Docker Compose安装是否成功:
二、创建新用户和工作空间
-
创建bitwarden用户
-
设置密码
-
创建并添加bitwarden至docker组
-
创建bitwarden工作目录(课自行修改)
三、安装Bitwarden
开始之前请进入到你前一步设置的工作目录。
-
下载安装脚本
-
安装
-
配置
- Enter the domain name for your Bitwarden instance: 准备好的域名
- Do you want to use Let's Encrypt to generate a free SSL certificate? (y/n): 如果你已经有证书就不用再申请,将证书放到./bwdata/ssl/your.domain目录下
- Enter your installation id: 点击进入https://bitwarden.com/host/,获取安装id
- Enter your installation key: 点击进入https://bitwarden.com/host/,获取key
- Enter your region (US/EU): 默认US
- Do you have a SSL certificate to use? (y/n): 根据自己情况选择
- Do you want to generate a self-signed SSL certificate? (y/n): 根据自己情况选择
-
修改端口
-
修改环境变量
需要修改以下几个位置:
我推荐使用QQ邮箱,因为没有SMTP数量限制。
-
配置docker外的nginx
如果你的80或者443端口被占用,那么你需要再进行一步反向代理。将下面的bitwarden配置文件修改后复制到
/etc/nginx/nginx.config的http{ }中。sudo vi /etc/nginx/nginx.config修改对应的部分:
至此,所有配置全部完成。
-
管理员设置
登录你的bitwarden的管理员站点
https://your.domain/admin会出现下面的界面,如果报错,请看8. Tips输入你设置好的管理员邮箱,然后去邮箱里接收验证链接,应该长这样:
Log in Now
接下来你就可以注册一个账号使用了,具体的使用方法请自行百度或者留言。
-
Tips
- 以上实现的是全链路的SSL加密通信。如果你提前准备好了SSL证书,其实在
3. 配置这一步只需要设置好你的域名即可,有关SSL的全选n。个人觉得服务器内部不需要加密通信(这里指的是服务器的nginx向docker中的nginx转发),除非担心你的服务器被入侵。这个按照自己的需求来。 - 如果输入你的域名能打开bitwarden,但是注册或者进入管理员面板后报错502,请输入
docker ps找到admin的容器id,例如7abe6e143c39 bitwarden/admin:2024.11.0,然后输入命令docker logs 7abe6e143c39查看日志,如果有报错基本都在这个日志能看到。找到问题请善用chatgpt等工具,也可以留言我帮你解决(不一定及时)。
- 以上实现的是全链路的SSL加密通信。如果你提前准备好了SSL证书,其实在
方案二:社区自建
一、安装docker和docker compose
见方案一:安装docker和docker compose(以Ubuntu22.04为例,已安装的可跳过)。
二、创建新用户
三、安装 Vaultwarden
Vaultwarden官方地址:Vaultwarden: Unofficial Bitwarden compatible server written in Rust, formerly known as bitwarden_rs,更加详尽的设置请前往自行查看。
-
创建数据存储路径(包含数据库和配置文件)
-
创建docker-compose.yml
这里我推荐使用docker compose方式安装vaultwarden。直接在命令行用docker安装坑太多不推荐!
以下是最基本的配置,开启了管理员页面和移动设备通知。修改下面的配置文件后粘贴到docker-compose.yml文件中。(如果你不熟悉docker,建议只修改备注的地方)
-
启动!!!
第一次启动:
docker compose logs -f是为了查看日志,如果报错的话可以查一查原因,不懂的话可以留言帮你解决。如果更新compose文件之后的话用下面的命令启动:
此时,如果你的端口是打开的就可以用
ip:port访问了(不推荐)
四、配置nginx
见方法一:配置docker外的nginx。忽略其他废话,直接配置,注意其中的端口修改为你刚才设置的映射端口。
下面是官方的nginx示例:Proxy examples
还有官方的HTTPS证书申请方法:Enabling HTTPS
五、其他设置
第四步完成之后就可以使用域名来访问自建的vaultwarden了。其他设置都可以在https://you.domain/admin进行设置。
这里一定配置好邮箱,邮箱的配置还是看方法一。这里还有官方推荐的几种邮箱:SMTP Configuration
大功告成!
其他更加详细的配置建议查看官方文档:Vaultwarden Wiki。
发表评论
Comments | 共 0 条评论
快来抢沙发!