当前位置: 首页 > 教程 > 心得 > CentOS 7安装bitwarden_rs自建密码管理

CentOS 7安装bitwarden_rs自建密码管理

发布于:2019-12-12 心得 13条评论 13,202 views
如需VPS代购、PHP开发、服务器运维等服务,请联系博主QQ:337003006

Bitwarden是一款开源密码管理软件,和Keepass、LastPass相似,支持全平台客户端,支持自建服务,这篇文章要分享的是CenOS 7搭建bitwarden_rs,而不是Bitwarden,关于两者区别,后面会提到。推荐有一定Linux基础的用户继续往下阅读。

前言

早就听闻Bitwarden这款开源密码管理软件,网上口碑也不错,不过一直没有尝试。最近LastPass经常连不上服务器,极其不稳定,而且取消了中文版支持,终于下定决心自建Bitwarden

Bitwarden和bitwarden_rs

bitwarden_rs项目延伸自Bitwarden,bitwarden_rs使用Rust实现了Bitwarden相似的功能,两者均开源。不过Bitwarden需要较多的依赖(如MSSQL),占用内存也比较大,如果是个人或家庭使用,推荐更加轻量的bitwarden_rs,并且bitwarden_rs还可以免费使用Bitwarden的一些高级功能,如附件上传、TOTP等功能。

安装bitwarden_rs

作者提供了Docker安装方式,因此我们需要先安装Docker(注意:OpenVZ虚拟化不支持Docker),安装Docker方法如下:

#安装Docker
yum -y install docker
#启动docker
systemctl start docker
#开机自启
systemctl enable docker

接下来使用Docker拉取bitwarden_rs镜像并运行

docker pull bitwardenrs/server:latest
docker run -d --name bitwarden -v /bw-data/:/data/ -p 80:80 bitwardenrs/server:latest

上方使用了80端口,如果您已经安装了WEB服务,可能会导致冲突,可以将bitwarden_rs映射的端口修改为其它,比如8880

docker run -d --name bitwarden -v /bw-data/:/data/ -p 8880:80 bitwardenrs/server:latest

配置反向代理

下方是xiaoz的nginx反向代理配置,主要是方便使用域名方式访问bitwarden_rs,内容仅供参考,请根据实际情况修改:

server
    {
    listen 443 ssl http2;
  # certs sent to the client in SERVER HELLO are concatenated in ssl_certificate
    ssl_certificate /data/ssl/youdomain.com.crt;
    ssl_certificate_key /data/ssl/youdomain.com.key;
    ssl_session_timeout 1d;
    ssl_session_cache shared:SSL:50m;
    ssl_session_tickets off;

    # intermediate configuration. tweak to your needs.
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS';
    ssl_prefer_server_ciphers on;

    # HSTS (ngx_http_headers_module is required) (15768000 seconds = 6 months)
    add_header Strict-Transport-Security max-age=15768000;

    # OCSP Stapling ---
    # fetch OCSP records from URL in ssl_certificate and cache them
    ssl_stapling on;
    ssl_stapling_verify on;

    server_name     youdomain.com;
   client_max_body_size 128M;
    location / {
        proxy_set_header  Host  'youdomain.com';
        proxy_pass http://127.0.0.1:8880;
        proxy_redirect off;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location /notifications/hub {
    proxy_pass http://127.0.0.1:3012;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
  }

  location /notifications/hub/negotiate {
    proxy_pass http://127.0.0.1:8880;
  }

}

如果不出意外,访问您的域名https://youdomain.com 就能看到Bitwarden界面。

遇到的一些问题

Google Chrome浏览器无法登录?

某些网络浏览器(例如Chrome)不允许在不安全的上下文中使用Web Crypto API。在这种情况下,您可能会收到类似的错误Cannot read property 'importKey'。要解决此问题的办法就是配置https访问。

参考了bitwarden_rs配置SMTP,但是邮件发送失败?

xiaoz使用的SMTP SSL方式发送邮件,但是未能成功,解决办法是禁用TLS即可:SMTP_EXPLICIT_TLS=true

总结

bitwarden_rs可以很轻松的实现自建密码管理,Bitwarden提供全平台客户端,使用起来非常方便。相比keepass,Bitwarden拥有更高的颜值和更加方便的管理方式。相比LastPass,Bitwarden是开源的,完全可以自建,不再忍受LastPass糟糕的网络。

如果不想自建的童鞋,Bitwarden也提供在线服务:https://vault.bitwarden.com/#/ ,可以直接注册账号使用。


13 条评论 “CentOS 7安装bitwarden_rs自建密码管理”

  1. lan说道:

    没有域名是不是不能用?

    1. xiaoz说道:

      可以用IP + 端口访问

  2. lan说道:

    管理员什么登陆啊。要注册么
    还是什么呢
    注册不动了

    1. xiaoz说道:

      多看看帮助文档

  3. 空白说道:

    楼主你好,反代的时候将server_name填写的二级域名,然后其他的和楼主一样,访问二级域名却是服务器上的博客,请问大佬有没有解决办法啊。
    还有个问题就是使用主域名的证书小锁是红的,需要为二级域名重新申请ssl证书吗?腾讯云没有泛域名….哭了。

  4. Allen WOOD说道:

    怎么禁止新用户注册呢? 用了下面的命令,不行啊,提示 Conflict. The container name “/bitwarden” is already in use by container,不会没次更新设置都有重开一个吧,这个也太烦了吧,大佬有没有解决方案 啊
    ===========================================
    docker run -d –name bitwarden \
    -e SIGNUPS_ALLOWED=false \
    -v /bw-data/:/data/ \
    -p 80:80 \
    bitwardenrs/server:latest

    1. xiaoz说道:

      参考文档,运行的时候加一行token,然后进入bitwarden的后台管理页面(/admin),去那里面关闭。
      ====================================================================
      -e ADMIN_TOKEN=xxxxx\

  5. 小马哥哥说道:

    LZ,你可以配置环境变量吗?我是基于宝塔和docker搭建的,搭建完后可以正常使用,但是环境变量无法成功,不知道你遇到没

    1. xiaoz说道:

      你是要配置docker还是什么环境变量?我搭建好之后直接写了一个shell脚本来管理运行,没有注册为service

  6. shi说道:

    我刚好也装了这个玩意,,,挂了DOCKER两三天,今天一看,发现这玩意CPU占到100%,,,吓得我马上关掉了。
    好像是SQL数据库特别占CPU,关键是还没有任何连接。
    这程序还是有问题啊

    1. shi说道:

      搞错了,我装的是Bitwarden,,,实在是没必要,我换你这个试试。

    2. xiaoz说道:

      我之前也装的Bitwarden,依赖太多了,有点吃资源,然后我换到bitwarden_rs,表现良好。

      1. shi说道:

        试了一下,果然好用,不怎么吃内存,高级功能还能全部用上。
        刚去卸载Bitwarden 的DOCKER镜像,发现他的MYSQL居然有1.3G这么大,搞鬼的吧?

shi进行回复 取消回复

电子邮件地址不会被公开。 必填项已用*标注