使用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填写你的域名,点击保存即可登录使用。

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

相关推荐
巅峰程序12 小时前
[docker]拉取镜像失败
docker·容器·eureka
MonkeyKing_sunyuhua14 小时前
sudo docker ps才能查看,docker ps不能查看问题
docker·容器·eureka
小龙在山东14 小时前
使用Docker快速部署FastAPI Web应用
docker·容器·fastapi
苏格拉真没有底14 小时前
docker配置代理解决不能拉镜像问题
运维·docker·容器
ciao-lk18 小时前
docker desktop运行rabittmq容器,控制台无法访问
docker·容器
严格要求自己19 小时前
nacos-operator在k8s集群上部署nacos-server2.4.3版本踩坑实录
云原生·容器·kubernetes
少吃一口就会少吃一口19 小时前
k8s笔记
云原生·容器·kubernetes
葡萄皮Apple19 小时前
[CKS] K8S ServiceAccount Set Up
服务器·容器·kubernetes
星海幻影20 小时前
云原生-docker安装与基础操作
网络·安全·docker·云原生·容器
2301_8061313621 小时前
Kubernetes 核心组件调度器(Scheduler)
云原生·容器·kubernetes