使用bitwarden_rs搭建自己的密码管理器

介绍

BitwardenRS是一个开源的密码管理器,它可以让你在自己的服务器上搭建和运行自己的Bitwarden密码管理服务。它提供了强大的加密功能,可以安全地存储和管理各种登录凭据。使用BitwardenRS,你可以方便地访问和使用密码,并保护你的个人信息的安全。

本文将引导读者通过在腾讯云Lighthouse服务器docker compose部署BitwardenRS。

Lighthouse是腾讯云推出的一款轻量应用服务器产品,它提供了高性价比、高可用性、高安全性和高灵活性的云端计算服务。具体信息参阅官方文档:轻量应用服务器概述

准备工作

安装docker

  • 一键安装脚本!Linux系统都支持!
bash 复制代码
# 官方源
curl -sSL https://get.docker.com/ | sh
#  Azure源(中国区azure)
curl -fsSL https://get.docker.com | bash -s docker --mirror AzureChinaCloud
  • 启动服务
bash 复制代码
#启动Docker
systemctl start docker
#开机启动
systemctl enable docker

安装

本次使用的是vaultwarden镜像。 vaultwarden优点:资源占用少,减少服务器负担。

1.创建目录

bash 复制代码
mkdir -p ~/bitwardenrs

2.创建配置文件

bash 复制代码
#apth: ~/bitwardenrs/docker-compose.yml
cat > ~/bitwarden/docker-compose.yml<<EOF
version: '3'

services:
  vaultwarden:
    image: vaultwarden/server:latest
    container_name: vaultwarden
    restart: always
    # environment:   # 以下为可选配置,以qq邮箱为例
    #   - SMTP_HOST=smtp.qq.com # 邮箱服务器地址
    #   - SMTP_FROM=xxxx@qq.com #  发件人
    #   - SMTP_PORT=587         # 邮箱服务器端口
    #   - SMTP_SECURITY=starttls   # 邮箱服务器安全协议
    #   - SMTP_USERNAME=xxxxx@qq.com    #邮箱账号
    #   - SMTP_PASSWORD=xxxxx         #邮箱密码
    #   - DOMAIN=https://xx.xxx.xxx    #域名
    ports:
    - "3013:80"
    volumes:
      - ./data:/data
EOF

以上配置文件为最简配置,如果需要配置邮箱,可以取消注释并修改相应配置。
配置好邮箱后,登录时会有邮件通知。
qq邮箱密码需要使用授权码,路径: 登录mail.qq.com设置--->账号--->POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务具体参考下图:

以上配置文件为最简配置,如果需要增加配置,可以参考官方文档

3.启动服务

bash 复制代码
#path: ~/bitwardenrs
docker-compose up -d

4.配置nginx反代

nginx安装可以参考官方文档,或我的OpenResty安装教程

conf 复制代码
#path: /etc/nginx/conf.d/bitwarden.conf
upstream vaultwarden-default {
  zone vaultwarden-default 64k;
  server 127.0.0.1:3013;
  keepalive 2;
}

# Needed to support websocket connections
# See: https://nginx.org/en/docs/http/websocket.html
# Instead of "close" as stated in the above link we send an empty value.
# Else all keepalive connections will not work.
map $http_upgrade $connection_upgrade {
    default upgrade;
    ''      "";
}

# Redirect HTTP to HTTPS
server {
    listen 80;
    listen [::]:80;
    server_name cloud.tencent.com;  # 修改为你的域名

    if ($host = cloud.tencent.com) {   # 修改为你的域名
        return 301 https://$host$request_uri;
    }
    return 404;
}

server {
    listen 443 ssl ;
    listen [::]:443 ssl;
    server_name cloud.tencent.com;   # 修改为你的域名

    # Specify SSL Config when needed
    ssl_certificate /etc/nginx/conf.d/ssl/cloud.tencent.com_bundle.crt;
    ssl_certificate_key /etc/nginx/conf.d/ssl/cloud.tencent.com.key;
    access_log /var/log/nginx/bitwarden.log main;


    client_max_body_size 525M;

    location / {
      proxy_http_version 1.1;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection $connection_upgrade;

      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_set_header X-Forwarded-Proto $scheme;

      proxy_pass http://vaultwarden-default;
    }

}

ssl证书申请可以参考:腾讯云免费证书申请
cloud.tencent.com替换为你的域名。
把申请到的nginx证书放到/etc/nginx/conf.d/ssl/目录下。并修改配置文件中的证书路径。

  • cloud.tencent.com_bundle.crt 证书文件
  • cloud.tencent.com.key 私钥文件
conf 复制代码
...
    ssl_certificate /etc/nginx/conf.d/ssl/cloud.tencent.com_bundle.crt;  # 修改为你的证书文件名
    ssl_certificate_key /etc/nginx/conf.d/ssl/cloud.tencent.com.key;     # 修改为你的私钥文件名
...

执行nginx -s reload使配置生效。

5.访问

访问你设置的域名,即可看到BitwardenRS的登录界面。

注册账号,登录即可使用。

6.配置2FA

2FA是一种双重验证机制,可以增加账号的安全性。
设置--->安全--->双重验证中,可以设置2FA。

使用

具体支持的客户端可参考:官方文档
本文以Microsoft Edge浏览器为例。插件地址:Microsoft Edge bitwarden
安装插件后,点击插件图标,修改为自托管。

服务器URL填写你的域名,点击保存即可登录使用。

可根据你的需求设置自动锁定时间、自动填充等。

相关推荐
心理之旅5 小时前
高校文献检索系统
运维·服务器·容器
大佐不会说日语~6 小时前
使用Docker Compose 部署时网络冲突问题排查与解决
运维·网络·spring boot·docker·容器
曾几何时`9 小时前
Docker容器化部署编译运行模块
运维·docker·容器
直饮水观察哨11 小时前
商用净水器亲测对比,哪个更专业?
容器
Suchadar12 小时前
Docker基础命令(二)——数据卷管理端口映射与容器互联
运维·docker·容器
firstacui12 小时前
Docker容器网络管理与容器数据卷管理
运维·docker·容器
努力搬砖的咸鱼14 小时前
部署你的第一个应用到 K8s
微服务·云原生·容器·kubernetes
舰长11515 小时前
使用 kubeadm搭建生产环境的单 master 节点 K8S 集群(一)
云原生·容器·kubernetes
hwj运维之路16 小时前
Docker面试题汇总系列
运维·docker·云原生·容器
VermiliEiz17 小时前
使用二进制方式部署k8s(6)
云原生·容器·kubernetes