自建 Bitwarden 服务器并配置 HTTPS
创始人
2025-01-20 10:33:25
0

自建 Bitwarden 服务器并配置 HTTPS

    • 背景
    • Bitwarden
    • 使用 docker 搭建服务端
      • 拉取镜像
      • 部署
        • 简易部署
        • 删除容器
        • 再次部署
      • 搭建 HTTPS

背景

我时常因为要记住各种平台的账户密码而担忧,因为怕忘记,然后就想找一款可以保存密码的软件,市面上有 1password ,我使用过它,它确实好用,我通过 Github 学生认证包,免费尝试了一年,但是续费比较贵,所有我选择买一台服务器,自建服务器,数据在自己手里更放心。

Bitwarden

Bitwarden 是一款开源的密码管理平台,并且它提供跨平台的支持。

  • 开源的代码
  • 云端同步
  • 项目类型,如登录信息、安全笔记、信用卡、身份
  • 保管库数据的端到端加密
  • 密码历史记录,可以在登录信息中查阅以前的密码
  • 与其他 Bitwarden 用户安全地分享保管库中的记录
  • 自动填写登录信息到网站和其他应用程序
  • 密码生成器
  • 2FA
  • 文件作为附件
  • TOTP 密钥存储及代码生成器
  • 数据泄露报告和密码暴露检查
  • 跨平台客户端
  • 自行部署 Bitwarden 服务器

使用 docker 搭建服务端

[!info]
如何安装 Docker 可以参考:CentOS 7.6 安装 Docker 与 Compose

由于官方提供的 Docker 镜像,要求服务器的内存大于 3G,所以我们使用第三方开源的服务端 https://github.com/dani-garcia/vaultwarden ,它由于使用 Rust 编写,性能极高,并且占用内存极低,只需要 128M 左右,以及解锁官方大部分的高级功能和提供 Docker 镜像,只需要几条命令就可以完成部署。

拉取镜像

docker pull vaultwarden/server:latest 

部署

由于我是部署给自己使用,我会关闭服务端的注册功能,所以会有一个先简易部署,进行账户注册,然后再次部署。

简易部署

先通过简易命令进行部署服务端:

docker run -d --name vaultwarden \ 	-v /root/bitwarden/:/data/ \ 	-p 11000:80 \ 	vaultwarden/server:latest 

先访问该服务端,然后通过 https://公网 ip:11000 进行访问,然后注册账户。记住自己注册的账户

删除容器
  1. 找到通过简易部署对应的容器
dcoker ps 
  1. 找到对应的容器 id 为 f511495b9da5
    image.png

  2. 停止该容器

docker stop f511495b9da5 
  1. 删除该容器
docker rm f511495b9da5 
再次部署

使用 openssl rand -base6 生成 token,填入下方 中。

docker run -d --name vaultwarden \ 	-e SIGNUPS_ALLOWED=false \ 	-e INVITATIONOS_ALLOWED=false \ 	-e ADMIN_TOKEN='' \ 	-e WEBSOCKET_ENABLED=true \ 	-v /root/bitwarden/:/data/ \ 	-p 127.0.0.1:11000:80 \ 	vaultwarden/server:latest 

:参数解释

  • -p 127.0.0.1:11000:80 为安全只提供内网访问,通过 nginx 反向代理,进行 HTTPS 配置。
参数解释
SIGNUPS_ALLOWED允许注册
INVITATIONOS_ALLOWED是否允许组织邀请注册
ADMIN_TOKENAdmin 页面后台密码,推荐使用 openssl rand -base64 48 生成
WEBSOCKET_ENABLED是否开启 WebSocket

搭建 HTTPS

[!info]
编译安装 Nginx 可以参考 CentOS 7 编译安装 Nginx

在 Nginx 配置目录中 nginx.conf 文件的 http 块中添加以下内容:

map $http_upgrade $connection_upgrade { 	default upgrade; 	'' close; }  server { 	listen 443 ssl; 	server_name ;  	ssl_certificate ; 	ssl_certificate_key ; 	ssl_session_timeout 5m; 	ssl_protocols TLSv1.1 TLSv1.2; 	ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; 	ssl_prefer_server_ciphers on;  	location / { 		proxy_pass http://127.0.0.1:11000; 		proxy_redirect off;  		proxy_http_version 1.1; 		proxy_set_header        Host    $host; 		proxy_set_header        X-Real-IP       $remote_addr; 		proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for; 		proxy_read_timeout 3600s;  		proxy_set_header Upgrade $http_upgrade; 		proxy_set_header Connection $connection_upgrade; 	} } 

然后通过域名访问,就可以通过 https 传输信息了。

:配置解释

  • 配置 Websocket
map $http_upgrade $connection_upgrade { 	default upgrade; 	'' close; }  location / { 	………… 	proxy_set_header Upgrade $http_upgrade; 	proxy_set_header Connection $connection_upgrade; 	………… } 

相关内容

热门资讯

一分钟内幕!科乐吉林麻将系统发... 一分钟内幕!科乐吉林麻将系统发牌规律,福建大玩家确实真的是有挂,技巧教程(有挂ai代打);所有人都在...
一分钟揭秘!微扑克辅助软件(透... 一分钟揭秘!微扑克辅助软件(透视辅助)确实是有挂(2024已更新)(哔哩哔哩);1、用户打开应用后不...
五分钟发现!广东雀神麻雀怎么赢... 五分钟发现!广东雀神麻雀怎么赢,朋朋棋牌都是是真的有挂,高科技教程(有挂方法)1、广东雀神麻雀怎么赢...
每日必看!人皇大厅吗(透明挂)... 每日必看!人皇大厅吗(透明挂)好像存在有挂(2026已更新)(哔哩哔哩);人皇大厅吗辅助器中分为三种...
重大科普!新华棋牌有挂吗(透视... 重大科普!新华棋牌有挂吗(透视)一直是有挂(2021已更新)(哔哩哔哩)1、完成新华棋牌有挂吗的残局...
二分钟内幕!微信小程序途游辅助... 二分钟内幕!微信小程序途游辅助器,掌中乐游戏中心其实存在有挂,微扑克教程(有挂规律)二分钟内幕!微信...
科技揭秘!jj斗地主系统控牌吗... 科技揭秘!jj斗地主系统控牌吗(透视)本来真的是有挂(2025已更新)(哔哩哔哩)1、科技揭秘!jj...
1分钟普及!哈灵麻将攻略小,微... 1分钟普及!哈灵麻将攻略小,微信小程序十三张好像存在有挂,规律教程(有挂技巧)哈灵麻将攻略小是一种具...
9分钟教程!科乐麻将有挂吗,传... 9分钟教程!科乐麻将有挂吗,传送屋高防版辅助(总是存在有挂)1、完成传送屋高防版辅助透视辅助安装,帮...
每日必看教程!兴动游戏辅助器下... 每日必看教程!兴动游戏辅助器下载(辅助)真是真的有挂(2025已更新)(哔哩哔哩)1、打开软件启动之...