使用自建的Bitwarden密码服务器管理密码
使用自建的Bitwarden密码服务器管理密码
平常我们都会使用大量的网站、app等服务,绝大部分网站都需要我们注册账号才可以使用。但太多的网站管理起来很不方便,尤其是现在数据泄露越发普遍,各个大厂密码泄露服务频发。使用单一的通用密码会给我们带来极大的风险。我使用对比了众多密码软件。最终选择了Bitwaden作为我的密码管理服务。
搭建前的准备
服务器
首先需要一台稳定运行的服务器或NAS,bitwarden对服务器的要求很小,国内很便宜的服务器即可轻松运行。当然,你不需要担心服务器宕机或者数据丢失后的处理。bitwarden采用的是拉取服务器密码库存入本地设备的存储设备中。服务器宕机或者网络无法连接仅仅会造成无法新增密码,但本地app的登录,密码填充等服务均可正常使用
域名
bitwarden强制要求需要ssl加密登录,http会以明文传出数据。所以我们需要一个自己的域名和对应的证书,来实现正常的ssl加密。
(如未有请自行购买,国内推荐阿里云,腾讯云,国外推荐namesilo等)
反向代理
bitwarden不提供ssl服务,所以我们需要nginx来进行反向代理。很幸运,众多大神开发了很多好用的nginx服务。这里我推荐Nginx Proxy Manager
,这里简称NPM。关于npm,我也写了关于npm的使用方法,如果有兴趣,可以直接点击这篇文章 - Nginx Proxy Manager反代实现HTTPS
docker
bitwarden提供了众多的安装方式,这里选用了docker安装,是因为docker简单,易用,不需要考虑软件所需环境,即可轻松安装。如果有兴趣,可以看下这篇文章-涉及docker的一点点知识
ddns
搭建bitwarden需要公网ip进行访问,如果像家庭nas没有固定的公网ip,那么你就需要ddns,让ddns帮助你获取当前设备的动态公网ip。另外提一句,当前三大运营商IPV6建设已经很充足了,各个地区几乎都有公网ipv6。没有v4的可以开启ipv6服务。如果你对ddns感兴趣,你可以看一下这篇文章-docker安装ddns-go
安装Bitwarden
登录到服务器命令后台,直接复制下方命令即可正常安装。
生成token密钥,或自定义Admin_Token密码
openssl rand -base64 48
示例:
# 例如
root@debian:~# openssl rand -base64 48
n0VnkawRyIOq+iTf11DPFDxepx7pfiRvGzoYxYeY2xVEYnjMGYSYhBbuQm7g2+m7
Admin_Token加密
⚠ 要使用此功能,您的vaultwarden必须要在1.28.0+以上
# 使用 Bitwarden 的默认设置
# 有正在运行的vaultwarden容器时
docker exec -it key /vaultwarden hash
# 通过Docker并创建一个临时容器
docker run --rm -it vaultwarden/server /vaultwarden hash
# 输入前面生成的token(输入不显示):
Password:
# 再次输入
Confirm Password:
#生成加密token
ADMIN_TOKEN='$argon2id$v=19$m=65540,t=3,p=4$wnSRpET9lhM+jzRbyX3ohHA936gYkbU8od1gyE0aFWw$XVfSWC/nrTy0KRGDS4lsEebczctIw7BewBuuStvOgng'
运行命令 - 注意:请在中文位置添加正确的参数
docker run -d \
--name=bitwarden \
--restart unless-stopped \
-e PGID=1000 \
-e PUID=100 \
-e TZ=Asia/Shanghai \
-e SERVER_ADMIN_EMAIL=邮箱 \
-e SIGNUPS_ALLOWED=false \
-e INVITATIONS_ALLOWED=true \
-e WEBSOCKET_ENABLED=true \
-e ADMIN_TOKEN=token密钥,任意生成 \
-p 35688:80 \
-v /vaultwarden/data:/data:rw \
vaultwarden/server:latest
各个环境变量意义
docker run -d \
--name=bitwarden \ ## 容器名称
--net=xxx \ ## 网络名称,可选项
--restart unless-stopped \ ## 重启设置,默认
-e PGID=1000 \ ## 用户id,根据实际情况选择
-e PUID=1000 \ ## 用户组 id根据实际情况选择
-e TZ=Asia/Shanghai \ ## 时区
-e SERVER_ADMIN_EMAIL=邮箱 \ ## 管理员邮箱
-e SIGNUPS_ALLOWED=false \ ## 是否允许注册-否
-e INVITATIONS_ALLOWED=true \ ## 是否允许邀请注册-是
-e WEBSOCKET_ENABLED=true \
-e ADMIN_TOKEN=token密钥,任意生成 \ ## 后台密钥
-p 35688:80 \ ## 端口号
-v /data:/data:rw \ ## 容器映射端口
vaultwarden/server:latest
配置反向代理
⚠ vaultwarden不支持http运行,必须配置https
这里我们使用Nginx Proxy Manager
来配置反向代理,具体可以参考这篇文章 - - Nginx Proxy Manager反代实现HTTPS
配置Bitwarden
初始化Bitwarden
,在设置的域名后加入admin,回车,进入后台管理页面,例如这里是https://bit.xxxx.com:12345/admin
使用ADMIN_TOKEN
登录管理员账号,token为docker环境变量设置的 -e ADMIN_TOKEN= your token
参数
这里我们的密钥就是n0VnkawRyIOq+iTf11DPFDxepx7pfiRvGzoYxYeY2xVEYnjMGYSYhBbuQm7g2+m7
在General settings
选项卡下找到Domian URL
,填入自己的域名和端口号
在General settings
选项卡下找到Invitation organization name
,填入自己喜欢的名字(可选)。
在SMTP Email Settings
选项卡下找到Host
Port
,按下列信息填写
SMTP发件服务器在你使用的邮箱获取,经测试,qq、163等国内邮箱均可以,邮箱不同具体的配置也不同。其中163邮箱,qq邮箱使用SMTP发信需要设置单独的密码。
在页面底部点击保存
保存完成后所有参数,这里以163邮箱为例
回到SMTP Email Settings
选项卡,在Test SMTP
输入被测试邮箱,点击Send test email
测试SMTP
发件服务是否正常运行。
如果测试正常,将会显示SMTP Test email sent correctly
切换到USER
选项卡,发送邀请注册链接给自己将要使用的邮箱,如下图所示
注册Bitwarden
登录刚刚发送邀请邮件的邮箱,你会发现有一条邀请邮件,如未收到,请仔细检查垃圾箱等
点击Join Organization Now
,会自动跳转到邀请页面
点击Create Account
,进入注册页面
依次填写用户名、密码、确认密码、密码忘记提醒,请注意,bitwarden的主密码非常重要,请妥善保管
注册完成后,登录Bitwarden网页端,在网页端的右侧,有一个验证邮箱提升框,请按照提示验证邮箱
使用Bitwarden
Bitwarden在各个平台上均有对应的客户端,可以去官网下载,这里仅以网页插件为例来进行示范
下载对应浏览器的插件,这里我使用的是Edge,下载地址。安装完成后打开此插件
在自托管环境输入上面设置的域名及其端口号,点击保存
当显示保存成功时,输入刚刚注册的邮箱和密码,点击登录。
点击设置-选项-
勾选自动填充密码
下面就开始优雅的管理密码吧