对话笔记直发:8.15 Bitwarden登录问题排查与服务器升级。分类:网络基建。
tags: [vaultwarden, Bitwarden, 密码管理器, 浏览器扩展, 登录排查, Docker, 服务器升级, NAS] title: Bitwarden 浏览器扩展登录失败排查与 vaultwarden 升级 date: 2026-08-15
Bitwarden 浏览器扩展登录失败排查与 vaultwarden 升级
背景
- 局域网 NAS
jp(IP192.168.*.*,aarch64/ARM64)上自托管 vaultwarden,外部通过 Cloudflare 隧道域名https://3566.unixcs.eu.org访问。 - 现象:Windows 电脑 Edge 浏览器的 Bitwarden 扩展,清缓存后重新登录”一闪而过”,无法登录成功;豆包浏览器同版本旧扩展一切正常。
排查过程(服务端全链路)
- 容器状态:vaultwarden
Up 5 weeks (healthy),本地127.0.0.1:8080返回 200。 - 隧道与域名:cloudflared 运行正常,域名 + 证书(Let’s Encrypt)+ prelogin 接口全部 200。
- 服务器日志(23:38)捕获 Edge 登录请求被拒:
No Bitwarden-Client-Version header providedclient_secret cannot be blank- → 400 Bad Request(登录”一闪而过”的根因)
- A/B 实测验证:同一登录请求,不带
Bitwarden-Client-Version头 → 服务器报缺头;带头 → 错误消失。确认该校验为服务器硬性要求,无配置开关。 - 时间线核实:镜像构建 2026-04-25、容器 2026-07-05 创建后未再更新(停在 1.35.8);旧扩展平时靠本地已存会话(本地解密)维持,清缓存抹掉会话后才被迫走完整服务器登录。
根因(第一性原理)
双端版本错配:
- 旧浏览器扩展(不带
Bitwarden-Client-Version头)→ 被 vaultwarden 1.35.8 登录接口强制拒绝。 - 最新扩展(2026.7+)→ 又要求服务器 ≥1.37.0,1.35.8 同样不兼容。
- 误解澄清:ARM64 不是限制,官方镜像多架构支持;服务器只是
latest未更新。 - 清 Edge 缓存只是把隐藏问题暴露出来,非真正原因。
解决方案与执行(子代理评审后放行)
- 流程:方案交由子代理三轮评审(FAIL → 修正重审 → PASS)后方可实施。
- 关键修正:备份须校验完整性+行数基线;先预拉镜像再停机;回滚须停机+移走旧数据+内容级恢复;compose 固定版本标签防漂移;预生成
1.35.8本地标签保证离线回滚。 - 备份:
/opt/vaultwarden/data.bak-20260815010118(integrity_check=ok;基线 users=1 / orgs=0 / ciphers=487 / devices=14)。 - 升级:
docker compose pull1.37.1(arm64 官方支持),compose 固定image: vaultwarden/server:1.37.1,docker compose up -d。 - 复核:Vaultwarden 1.37.1,Web-Vault 2026.6.4,容器 healthy。
验收结果
- 隧道域名 → 200;prelogin(带新头+真实邮箱)→ 200(KDF 配置正确)。
- token 接口 → 400 仅因测试请求缺
device_identifier,日志已无缺头错误 → 新扩展可正常走登录。 - WebSocket 握手 → 401(端点存在需认证,非 404,符合预期)。
- 数据一致性:users=1 / orgs=0 / ciphers=487 / devices=14 与升级前基线完全一致。
- 迁移日志:Vaultwarden 正常启动,无迁移报错。
待办
- Edge 扩展更新到最新 2026.x 版本,重新登录验证(服务器侧已就绪)。
- 豆包扩展同样建议升级到最新版,避免旧版会话失效后重演问题。
- (可选)cloudflared 隧道 QUIC 通道抖动(6h 内 618 次超时),可改
protocol: http2加固。 - (建议)vaultwarden 数据目录另做一份异地/盘外备份(当前备份在同一磁盘)。