最近正在因为换了浏览器,进行过一次密码迁移,在迁移的过程中总感觉有种隐忧,就是密码泄露或者丢失的风险 其实密码泄露给这些大型的公司比如Microsoft/Google,其实对我没影响,但是如果片丢失了,就影响大了,因为我有很多的网络站点都是使用浏览器生成的强密码,此前很多密码管理工具也出现过数据丢失的问题。 所以我想着自己搭建属于自己的服务来实现,更安全(但不一定更可靠)的密码服务。
调研#
我简单调查了市面上所有的密码管理器,主要分为两部分:
- a、云服务:除了依赖浏览器厂商,还有一些专业的密码服务厂商,比如被广泛使用的1password和以隐私保护著称的proton pass,但是这两个的服务都不是免费的,而且都不便宜,国内的连接也不够稳定。
- b、自搭建服务:使用大名鼎鼎的bitwarden或者keepassxc,后者很安全,因为数据文件只能保存在本地,但问题也就是他没有任何的云服务,非常不方便。
最终我决定使用vaultwarden,一个基于bitwarden的rust重写版(rust信徒狂喜),使用我之前的买的一个火山云的服务器2g2核,足够运行。当时这个服务器还是用来跑openclaw的,后来没弄成,就闲置下来了。
部署#
部署要求#
- 云服务器:由于rust底层,导致占用很低,2gb2核绝对够用
- 域名:需要一个域名,因为需要ios自动填充和chrome插件都需要HTTPS环境,所以需要把域名解析到我的个人服务器上,并且需要SSL证书。
- 环境要求:服务器最好有docker环境
部署过程#
配置docker#
这是第一步,对于国内来说也是最难的一步,因为服务器不同于个人网络,不可以部署vpn服务,所以要配置要准备好可以连接的docker是最麻烦的,首先是docker安装,可以在部署服务器的时候,可以选择自带并且安装好docker的环境。对于不同的服务器厂商,可以直接搜各自指定的文档来安装docker。 安装docker,通常不会出现问题,问题主要出现在拉取镜像上,网上对于这方面的解决措施纷繁复杂,什么配置镜像源,什么本地pull再传到服务器上,我这里之给出一种解决我的问题的方法
- 1ms:一毫秒,是一个国内可以访问的docker代理网站
1docker pull docker.1ms.run/vaultwarden/server:latest
2docker pull docker.1ms.run/library/caddy:2此处下载了两个镜像,一个是vaultwarden本地,另一个是caddy,用来反向代理的
安装环境#
首先创建文件夹
1mkdir -p /home/somnus/vaultwarden
2cd /home/somnus/vaultwarden接着就是创建Caddyfile,他是用来全自动申请和续签Let’s Encrypt 的 HTTPS 证书,完全不需要手动配置。
1nano Caddyfile并输入以下内容
1pwd.yourdomain.com { #此处替代为自己的域名
2 reverse_proxy vaultwarden:80
3}并保存退出
创建docker-compose.yaml#
创建该yaml文件
1nano docker-compose.yaml并且输入以下内容
1version: '3'
2
3services:
4 vaultwarden:
5 image: vaultwarden/server:latest
6 container_name: vaultwarden
7 restart: always
8 environment:
9 - WEBSOCKET_ENABLED=true
10 - SIGNUPS_ALLOWED=true # 第一次启动设为 true,注册完后改为 false
11 volumes:
12 - ./vw-data:/data
13
14 caddy:
15 image: caddy:2
16 container_name: caddy
17 restart: always
18 ports:
19 - 80:80 # 必须映射 80 和 443 端口
20 - 443:443
21 volumes:
22 - ./Caddyfile:/etc/caddy/Caddyfile:ro
23 - ./caddy-data:/data
24 - ./caddy-config:/config
25 depends_on:
26 - vaultwarden保存并退出,执行以下命令
1sudo docker compose up -d此时如果一切正常,你在访问自己的域名的时候就能进入vaultwarden的登陆界面了。
备案#
如果你选择的是国内的运营商的服务器,那么不可避免的你都需要进行备案,可以直接按照对应公司的备案流程来。
过了大概三天,工信部的备案就通过了,再过不到24hour,就可以直接访问这个网站了。
网站页面如下:
