搭建自己的密码管理服务器 Bitwarden

# 1. 拉取 bitwarden_rs 镜像 docker pull bitwardenrs/server:latest

# 2. 生成一个 admin 用户管理页面的 token openssl rand -base64 48

# 3. 生成 ssl 证书,以启用 https,推荐使用 acme.sh 免费申请及自动续签

3.1 下载并执行 acme.sh 脚本 curl https://get.acme.sh | sh

3.2 生成证书,这只是一种方式,其他方式可以自行搜索 apt install socat

debian 系为例 acme.sh –issue -d yourdomain.com –standalone

> 3.3 将生成的证书拷贝安装到指定文件夹 acme.sh –installcert -d yourdomain.com \ –key-file /path/to/yourdomain.com.key \ –fullchain-file /path/to/fullchain.cer \

# 4. 运行 bitwarden_rs 容器

docker run -d –name bitwarden \ -e SIGNUPS_ALLOWED=false \ -e INVITATIONS_ALLOWED=false \ -e ADMIN_TOKEN=step2_generated_token \ -e ROCKET_TLS='{certs=”/path/to/docker/ssl/fullchain.cer”,key=”/path/to/docker/ssl/yourdomain.com.key”}’ \ -e DOMAIN=https://yourdomain.com \ -e LOG_FILE=/path/to/log \ -e LOG_LEVEL=warn -e EXTENDED_LOGGING=true \ -e DATA_FOLDER=/path/to/data/folder \ -p 443:80 \ -v /path/to/host/ssl/:/path/to/docker/ssl/ -v /path/to/host/data/folder:/path/to/docker/data/folder \ bitwardenrs/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:图标缓存路径 以上是我自己觉得需要的一些配置,更多参数可参考官方 Wiki。

示例:

docker run -d –name bitwarden -e SIGNUPS_ALLOWED=false -e INVITATIONS_ALLOWED=false -e ADMIN_TOKEN=bTVsf7Hj99HPxECRPOL9U70bP0Iy5lXmbbJVP2tvwDszB8CClv+MD3TT6mSJTa4L -e ROCKET_TLS='{certs=”/ssl/bw.withdewhua.space/fullchain.cer”,key=”/ssl/bw.withdewhua.space/bw.withdewhua.space.key”}’ -e DOMAIN=https://bw.withdewhua.space -e LOG_FILE=/data/bitwarden.warn.log -e LOG_LEVEL=warn -e EXTENDED_LOGGING=true -p 443:80 -v /bw-data/:/data/ -v /usr/local/nginx/conf/ssl/:/ssl/ bitwardenrs/server:latest 示例站点:https://bw.withdewhua.space:8443/#/ (仅用于展示,可注册体验,随时可能删除) 服务器已出

容器操作命令 # $name 为 docker run 中定义的 name # 启动容器 docker start $name

# 停止容器 docker stop $name

# 删除容器 docker rm $name

# 查看运行容器 docker ps -as 升级 Bitwarden 镜像 # 1. 重新拉取镜像 docker pull bitwardenrs/server:latest

# 2. 停止、删除原容器 docker stop bitwarden docker rm bitwarden

# 3. 重新运行 docker run 命令

# 4. 查看镜像文件 docker image ls

# 5. 删除原镜像文件, $ID 在 step4 中可以看到 docker image rm $ID

客户端使用方法

使用方法就讲下Chrome插件的吧,其他的用法都是类似的。

打开插件,点击右上角设置按钮 bitwarden-chrome-extension bitwarden-chrome-extension 填入 bitwarden 的域名 server-url server-url 保存后正常登录即可。

可以直接从 Bitwarden 官方导出然后导入到自己服务端,

这个 docker 镜像对于服务器的配置要求不高,内存在 512 就可以了 能用到的功能都有,包括最基本的密码保存、上传附件等,官方需要付费的 TOTP 、密码检测功能也都能直接使用的 密码放在别人服务器上不放心的