本教程是搭建和使用一体的,如果您只是想看如何使用,请直接通过页面的大纲快速跳转。

过期提醒

本文章部分内容已经过期,在启动前的准备 无需在设置websocket 的端口配置。

详情请跳转到 1.30.0 的 releases 介绍

前言

统一密码?

可能你对于密码而言,是统一一个密码走天下,这不好也很不安全,虽然现在有点良心的互联网公司不会把你的密码进行md5加密,而是使用其他的加密算法,会生成不一样的密文,但还是不安全。

密码杂乱无章

我们在互联网上有很多的身份,需要很多账号,每一个网站想给你提供服务,基本上都需要一个账号也就是网站对你的唯一标识,这样才能给你提供服务。

密码保存到浏览器?

不这个其实也是不安全,而且所有设备只能在浏览器上,而且还必须统一浏览器例如chrome 或者 Firefox 等。

其次这个浏览器保存的密码,把用来的解密密钥保存在系统里面而且并没有保护,所有在你电脑上运行的软件都能读取这个文件。

如果你不相信的话HackBrowserData这个程序可以让你直接惊呆,他可以读取浏览器的历史 cookie 以及密码,当然属于安全测试,这个程序没有和我有任何关系。

总结

综上所述,我们希望一个安全的,跨平台的,数据在我们自己所保管的、还有免费以及开源。也就只能是 Vaultwarden代替了。

注意为什么不叫bitwarden 而是叫 Vaultwarden 呢?因为bitwarden是收费的,但是他们家开源自己的api,就有大佬根据他的api 使用rust 进行编写出一个开源的 Vaultwarden。他们可以完美的适配。以下把 Vaultwarden称作为 bitwarden

你需要准备的

  • 掌握搜索引擎技能(保证一直是最新的知识。)
  • 一个大脑🧠
  • 一台能开机的电脑或者是云服务器
  • 电脑或者是服务器能安装docker,或者你使用Linux 的宝塔
  • 掌握基本的docker基本知识
  • 掌握dns解析,申请ssl证书

搭建开始

本篇为了,低成本高效部署,选择使用docker,来进行安装。

起步

首先本篇默认,你已经安装完毕docker或者linux 的宝塔面板并且安装了基本的lnmp 服务,如果你这些不会或者不知道的话,可以进行学习完或者也可以跟着本篇尝试跟着做,但是我想进行劝退你们,学习相关知识再来看本篇。

如果我没有特别指明,宝塔操作的话,都是可以通用的。

拿到 bitwarden docker 镜像

你可以选择从 docker Hub 上进行搜索 vaultwarden/server ,然后进行按照网页上的文档进行克隆。

或者打开终端输入这段代码

1
sudo docker pull vaultwarden/server

可能有人说这部都一样的吗?我只是选择叫你们 docker hub 是一个镜像仓库,你需要什么可以去这里面搜

docker-bitwarden-01

我这里拿Windows的终端输出为例,linux上都是一样的大差不大。

启动前的准备

拿到镜像就可以准备让程序跑起来了,但是这里我补充一个docker 知识。

1
2
3
4
5
6
docker run -d --name vaultwarden \
-e ADMIN_TOKEN=some_random_token_as_per_above_explanation \
-e WEBSOCKET_ENABLED=true \
-v /vw-data/:/data/ \
-p 8081:80 \
vaultwarden/server:latest

上述命令我为了好观看进行格式化,但是扔到部分系统终端上无法进行运行,这段命令仅作为简述

  • docker run 是启动一个容器
  • –name 是指定容器的名字
  • -e 是指定容器环境变量
  • ADMIN_TOKEN=的环境变量是指定管理员页面的密码。
  • WEBSOCKET_ENABLED=true启动websocket 让设备在跨平台设备进行实时同步,提高时效性。
  • -v 创建一个持久化存储。
  • vaultwarden/server:latest 是docker 的镜像 lstest是最新的意思
  • -p 是映射端口 最左边的8081是本机端口,你可以随意更改在0~65535随你喜欢只要端口不被占用即可。

重点来了:

  • /vw-data/:/data/ 这个首先/vw-data/这个是你本机的文件地址,是用来存储容器产生的数据,例如保存的加密密码都在这个文件夹,这个你需要自己指定你本机的一个位置,一定要记住后面要加/。后面的/data/不需要动了

启动

根据上面启动前的准备,你需要准备,存储持久化的本机一个文件夹地址,以及一个 admin 管理员密钥,推荐随意生成一个。

1
docker run -d --name vaultwarden -e ADMIN_TOKEN=123456 -e WEBSOCKET_ENABLED=true -v /vw-data/:/data/ -p 8081:80 -p 3012:3012 vaultwarden/server:latest

把上面的 ADMIN_TOKEN/vw-data/替换成你的即可

docker-bitwarden-02.webp

运行成功之后,可以访问你的 ip地址(域名)+端口号 即可访问成功,前提是你防火墙开放这个端口。

docker-bitdaren-03.webp

访问可以看到上面的页面,以及你刚才指定的持久化文件夹下面会生成一堆文件

docker-bitwarden-04.webp

其中 db.sqlite3是最重要的,这里面存储的你的加密的账号密码数据,希望你妥善保管并且备份。

反代

如果你是服务器,切有域名,并且安装了nginx,你可以配置以下反向代理,以宝塔面板为例

在网站-你自己的网站-设置-反向代理

docker-bitwarden-07.webp

端口号是你在运行docker run -p左半面指定的端口号,如果你是跟着教程直接复制的,那么这里端口号为8081,目标url应该写成127.0.0.1:8081

然后我们到,nginx的配置文件中,插入以下配置,我这里插入的是第44行,由于每个版本不一样,你可以找到

#引用反向代理规则,注释后配置的反向代理将无效 include /www/server/panel/vhost/nginx/proxy/你的域名/*.conf;

其中 proxy_pass http:需要根据你自己的环境而言进行配置。

插入这段话的下方即可然后单击保存。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
location /notifications/hub/negotiate {
proxy_http_version 1.1;
proxy_set_header "Connection" "";

proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;

proxy_pass http://127.0.0.1;
}

location /notifications/hub {
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";

proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Forwarded $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;

proxy_pass http://127.0.0.1:3012;
}

这段话是,配置反向代理的ws协议端口。

现在如果你正确的配置好了域名解析,理论上你只需要访问你的域名即可打开 bitwarden 的页面。

优雅的使用

根据上面的搭建你可以已经成功搭建完成并且启动成功,那么我恭喜你,克服了对你的艰难问题。相比你的成功不光全是我的文章,而是你善于思考以及会使用搜索引擎找出一些关键性的问题和报错。

密码的转移

由于本篇实在是太长了,而且我太懒了不是很想在继续放图,以及互联网上已经有了轮子我就不在重复制造了。

如果你英文很好可以去访问:Bitwarden官网文档。

或者你英语不好,可以访问民间翻译的中文文档Bitwarden中文文档

客户端的安装

你可以从官网进行下载:https://bitwarden.com/download/

这里面有浏览器和客户端。

客户端的连接

所有客户端的连接都是一样的,我们需要去设置,更改登录的ur,如果不更改属于官网的。

docker-bitwarden-05.webp

在这里填写你的 域名或者是ip + 端口号

docker-bitwarden-06.webp

保存登录即可没有账号的创建账户即可。

引用

VaultWarden Wiki

Bitwarden 帮助中心中文版

Bitwarden 官方文档