利用Docker搭建Vaultwarden/Bitwarden过程记录

Bitwarden是一款支持全平台的开源密码管理器,可以直接访问他们的官网注册并使用他们的服务,将账号信息交给他们管理,也可以自行搭建服务,将账号密码存在自己的服务器上,供自己或者朋友进行使用。

Bitwarden是一款免费且开源的支付卡、密码、秘钥及关键文本存储方案,其最大的亮点就是这全平台支持,提供有浏览器、移动、桌面应用程序支持,可以一键填入密码。

运行环境准备

Bitwarden官方推荐使用Docker镜像安装,而官方使用.net构建,docker镜像体积有点大,这里推荐使用第三方构建的Vaultwarden,支持使用SQlite3、MySQL、PostgreSQL进行数据存储(默认使用SQlite3)。

bitwarden推荐所有请求都是安全的https访问(采用群晖反代理),当然可以使用子域名进行访问。

除了可以选择群晖反代理,亦可采用SSL映射方式

此处内容需要 回复 后才能查看

docker pull vaultwarden/server:latest
docker run -d --name vaultwarden -v /vw-data/:/data/ -p 80:80 vaultwarden/server:latest

环境变量说明:

SIGNUP_ALLOWED:是否允许注册
INVITATIONS_ALLOWED:是否允许组织邀请注册
ADMIN_TOKEN:用户管理界面 (/admin),可用于删除用户及邀请用户注册
ROCKET_TLS:ssl 证书信息,同时需要配置 -v /path/to/host/ssl/:/path/to/docker/ssl/ 卷,前者为宿主机 ssl 证书的位置,后者为容器证书位置
DOMAIN:域名
LOG_FILE、LOG_LEVEL、EXTENDED_LOGGING:日志保存文件路径以及日志等级定义
DATA_FOLDER:docker 容器数据保存文件夹(默认为 /data),除了定义这个文件夹之外,还可以定义附件、图标缓存、数据库等参数
DATABASE_URL:数据库路径
ATTACHMENT_FOLDER:附件路径
ICON_CACHE_FOLDER:图标缓存路径

Vaultwarden开启管理员权限

Vaultwarden可以开启管理员权限/admin页面,此页面允许服务器管理员查看所有注册用户并删除它们,它还允许邀请新用户,即使注册被禁用。当然为了用户隐私安全,管理员只能查看用户和删除用户,并不能读取用户存储的密码信息。

环境变量新增:

  • SIGNUPS_ALLOWED:false # 是否允许注册
  • WEBSOCKET_ENABLED=true
  • ADMIN_TOKEN:为后台管理页面 (/admin)设置token, 类似于管理员密码

数据备份

备份最关键的就是sqlite3数据库文件了,你可以直接进入到data目录下,将sqlite3数据库保存下来。当然你也可以将data目录下所有的包括附件文件夹、图标缓存文件夹、密钥等文件备份下来。

疑难杂症

1.http被自动跳转至https问题

自从安装了Vaultwarden后,发现docker的其他应用被自动的跳转到https了,网上搜的解决方案是关闭浏览器的HSTS功能。具体可自行百度。

附上Chrome浏览器的操作方式吧。

  1. 地址栏中输入chrome://net-internals/#hsts。
  2. 在Delete domain中输入项目的域名,并Delete(删除)。
  3. 可以在Query domain测试是否删除成功。

不晓得其他人有没有成功,但我的没成功。我的解决方式很另类。具体如下:

此处内容需要 回复 后才能查看

2.匹配规则的解析

  • 基础域
    • 基础域是什么意思呢?其实就是一级域名的意思。
    • 比如说我填写的链接是`https://123.baidu.com`,那么只要是一级域名是`baidu.com`的网站,Bitwarden都会自动监测到,并给出密码填写建议。所以二级域名的网址`cn.baidu.com`、带端口的网址`baidu.com:5000`、带了路径的网址`baidu.com:5000/ch/asd/123`都可以检测到。
  • 主机
    • 主机名可以简单理解为路径前面的信息。比如说`https://123.baidu.com/123/345`中`123.baidu.com`就是主机名,如果带了端口号的话,还要算上端口号。
    • 所以`主机`模式比`基础域`模式要更加精确一点。
    • 当我的URI是`https://123.baidu.com`时,`其他的`二级域名的网址`cn.baidu.com`、带端口的网址`123.baidu.com:5000`都是不能够检测到的。当我的URI是`https://123.baidu.com:5000`时,其他的二级域名(即使带了同样的端口)的网址`cn.baidu.com:5000`、带`不同端口`的网址`123.baidu.com:6000`也都是不能够检测到的。
  • 总结:
    • 基础域是最大的范围,只要主域名对上了,都会检测到。
    • 主机模式下会对`二级域名`、`端口`敏感,但是对网址路径不敏感。
    • 开始于模式下则更加严格,除了主机名等,还会对网址路径敏感。
    • 最严格的就是精确模式,一定要完全一样才能检测到。

参考链接

THE END
分享
二维码
打赏
海报
利用Docker搭建Vaultwarden/Bitwarden过程记录
Bitwarden是一款支持全平台的开源密码管理器,可以直接访问他们的官网注册并使用他们的服务,将账号信息交给他们管理,也可以自行搭建服务,将账号密码存在自……
<<上一篇
下一篇>>