起因
Bitwarden要求连接到的服务器必须为https,且最新版的浏览器插无法登录自搭建的平台,为了综合解决这些问题进行了一些列的方法措施,现在分享过来。
搭建过程
方法过https
借用纯内网使用Bitwarden - 容易兴奋的男人https://blog.cfandora.com/archives/449/ 详情就直接访问大佬博客吧
这里只提炼方法以及我踩的坑,
1.自签名证书
我使用mkcert amd64版本
有三个文件,两个bitwarden.pem - bitwardenkey.pem 都在当前文件
rootCA.pem 在 你/root/.local/share/mkcert/rootCA.pem得移动到当前文件
wget -O mkcert https://github.com/FiloSottile/mkcert/releases/download/v1.4.4/mkcert-v1.4.4-linux-amd64 //改写成你版本
chmod +x mkcert
./mkcert --cert-file bitwarden.pem --key-file bitwardenkey.pem 你的NAS设备(内网)IP
./mkcert -install
mv /root/.local/share/mkcert/rootCA.pem
2.我没有用反代就跳过了
3.Vaultwarden服务端
Vaultwardenopen in new window是一个Bitwarden 的非官方后端实现,它使用Rust 编写,更轻量且易于部署。使用Vaultwarden,您可以在自己的服务器上部署Bitwarden,这样您就可以完全控制您的密码数据。
第一个坑bitwarden.pem - bitwardenkey.pem文件的映射问题
因为我是nas做的nfs映射管理
{certs="/data/bitwarden.pem",key="/data/bitwardenkey.pem"}
docker语法键值对这方面错了
ROCKET_TLS: '{certs="/data/bitwarden.pem",key="/data/bitwardenkey.pem"}'
data不用动,这里只改写了./vw-data地址为我nas映射地址
version: '3'
services:
vaultwarden:
image: vaultwarden/server:latest
container_name: vaultwarden
restart: always
environment:
SIGNUPS_ALLOWED: "true"
WEBSOCKET_ENABLED: "true" # 启用 WebSocket 通知
ADMIN_TOKEN: setastrongpassword # 设置 Admin (后台)密码
ROCKET_TLS: '{certs="/data/bitwarden.pem",key="/data/bitwardenkey.pem"}' //不需要修改
volumes:
- ./vw-data:/data
ports:
- 8443:80
证书导入
需要将先前生成的 rootCA.pem 改名为 rootCA.crt 导入需要安装的设备中,避免客户端在连接服务端时提示证书不安全
- Windows
将 rootCA.crt 下载到电脑,双击该证书
安装证书 > 当前用户 > 将所有的证书都放入下列存储 > 浏览 > 受信任的根证书颁布机构 > 确定
之后证书导入只需要在各个使用设备导入你的证书即可
解决bitwarden浏览器插件登录失败问题
版本有如下报错:cannot read properties of null(reading iterations)
方法一:
升级服务端为最新版vaultwarden
方法二:
修改nginx增加以下字段
location = /identity/accounts/prelogin {
rewrite ^/identity/accounts/prelogin$ /api/accounts/prelogin;
proxy_pass http://api:5000/;
}
方法三;接着用老板版本
因为内网使用我就直接用老版本安装插件,没有再折腾
参考:Cannot read properties of null (reading 'iterations') · Issue #4895 · bitwarden/clients