Skip to content

Latest commit

 

History

History
45 lines (35 loc) · 3.94 KB

File metadata and controls

45 lines (35 loc) · 3.94 KB

在局域网内使用自己的密码仓库

服务端的选择

  • 我选择了vault warden, 他兼容bitwarden所有的客户端, 但是要比bitwarden轻量化太多了, 运行速度和对电脑的要求都要小得多, bitwarden竟然要占用2G内存. 也没有bitwarden官方那么多限制, 也不会收费. 设置和选项都要简单一些.
  • 如果担心不够安全, 只在局域网中部署服务器, 外面基本无法访问, 省去了域名的钱. 也省去了一大堆的配置.

安装

  • 基本上使用docker可以开箱即用, 没有什么安装步骤, 就是一个命令. 但是还需要一些前置的工作.

  • 对于不需要域名只在局域网使用的人来说, 要准备一份自签名的SSL证书. 推荐使用这个小工具: https://github.com/soulteary/certs-maker , 一秒生成证书.

    • 使用如下命令即可docker run --rm -it -e CERT_DNS="domain.com;*.domain.com;*.a.domain.com" -v <output_path>:/ssl soulteary/certs-maker
    • 其中输出目录换成自己想要的, 三个域名只需要一个即可, 在内网访问的话只需要一个ip地址当作域名就行. 然后就可以输出证书文件到指定位置.
    • 这样生成的证书文件有效期10年, 一般足够用了.
  • 然后使用命令拉取docker 容器就 以下是针对局域网的参数:

    docker run -d --name vaultwarden --restart=always\
      -e ROCKET_TLS='{certs="/ssl/<crt文件名>",key="/ssl/<key文件名>"}' \
      -v <证书的存放文件夹>:/ssl/ \
      -v /vw-data/:/data/ \
      -p 443:80 \
      vaultwarden/server:latest
    • 以上这组命令第一行给容器命名, 并且在机器重启后会自动运行
    • 第二行启用了ROCKET这个网络服务程序, 同时需要指定证书在容器内的位置
    • 第三行是映射一个文件夹到容器中来存储用户的数据, 这样不至于容器关闭就丢失数据
    • 第四行是将容器的80端口映射到宿主机的443端口, 其中443端口号可以自行修改.
    • 最后一行是下载docker映像的名称
    • 运行完成后没有什么提示, 一般就是成功了, 可以使用sudo docker ps来查看, 看到vaultwarden就是正在运行了
    • 在浏览器输入网址https://192.168.x.x:443, ip就是安装的主机地址, 如果没有修改443端口的话端口号可以省略
    • 如果网址打开了就可以开始注册了. 浏览器会提示证书不安全之类的废话, 如果只是在局域网自己用, 忽略即可.
  • 在Android手机可以下载Bitwarden官方客户端, 不过要先在手机上导入刚刚制作好的证书. 我的办法是用scp 命令copy到Windows机器上, 然后就可以用数据线或者Landrop这样跨平台的传文件工具传到手机上. 在手机的设置-安全-高级设置之类的地方, 会找到一个导入证书的地方, 我的手机还要求证书必须在手机根目录, 又经历了一次复制粘贴以后, 终于导入了证书, 然后手机客户端可以在局域网使用了.

  • 苹果手机上导入证书我试了几次都没法成功, 点击证书, 系统永远说已经成功下载, 要我去设置-通用-关于本机-证书设置里面打开证书的信任开关即可, 可我怎么样做也没有看到证书的存在, 不过我苹果手机不是主力于是也不太影响我.

使用

  • 除了手动添加条目外, 主流的密码管理都有导出的功能.
  • vaultwarden也都有对应的导入选项. 至此就可以很方便的使用了.
  • 所有获取密码, 同步数据库之类的操作都要在局域网才能实现.
  • 但是不在局域网里面也是可以使用现存的所有密码的. 即可以离线使用. 只是不能离线修改.
  • docker的命令里面是带有自动重启的, 也就是关机以后再开机应该会自动开机运行, 如果开机以后没有自动运行, 就用docker start vaultwarden来手动运行已经存在的容器. 如果想要让容器开机自动运行也不用删除容器, 使用命令docker update --restart=always vaultwarden即可更新他的启动命令.