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/#/ ,可以直接注册账号使用。
- bitwarden_rs项目地址:https://github.com/dani-garcia/bitwarden_rs
- 此文部分内容参考了:bitwarden_rs文档
- Bitwarden官方地址:https://bitwarden.com/
没有域名是不是不能用?
可以用IP + 端口访问
管理员什么登陆啊。要注册么
还是什么呢
注册不动了
多看看帮助文档
楼主你好,反代的时候将server_name填写的二级域名,然后其他的和楼主一样,访问二级域名却是服务器上的博客,请问大佬有没有解决办法啊。
还有个问题就是使用主域名的证书小锁是红的,需要为二级域名重新申请ssl证书吗?腾讯云没有泛域名….哭了。
怎么禁止新用户注册呢? 用了下面的命令,不行啊,提示 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
参考文档,运行的时候加一行token,然后进入bitwarden的后台管理页面(/admin),去那里面关闭。
====================================================================
-e ADMIN_TOKEN=xxxxx\
LZ,你可以配置环境变量吗?我是基于宝塔和docker搭建的,搭建完后可以正常使用,但是环境变量无法成功,不知道你遇到没
你是要配置docker还是什么环境变量?我搭建好之后直接写了一个shell脚本来管理运行,没有注册为service
我刚好也装了这个玩意,,,挂了DOCKER两三天,今天一看,发现这玩意CPU占到100%,,,吓得我马上关掉了。
好像是SQL数据库特别占CPU,关键是还没有任何连接。
这程序还是有问题啊
搞错了,我装的是Bitwarden,,,实在是没必要,我换你这个试试。
我之前也装的Bitwarden,依赖太多了,有点吃资源,然后我换到bitwarden_rs,表现良好。
试了一下,果然好用,不怎么吃内存,高级功能还能全部用上。
刚去卸载Bitwarden 的DOCKER镜像,发现他的MYSQL居然有1.3G这么大,搞鬼的吧?