Talking Lab

如何配置一个自动更新SSL证书的Bitwarden密码服务

缘起

随着年龄的增长,发现记忆力有逐渐下降的趋势。同时有N多注册过的网站、6位QQ号等等都因为时间关系忘记了账号或密码。就关注上了密码管理软件,最疯狂的时候,我的手机上同时安装了不下5、6个密码管理软件。

最开始的时候使用过keepass,但是其免费版本没有提供云同步功能,只能基于Google Drive、Dropbox等软件碾转进行,一不小心就需要进行合并。体验并不是很好。并且当时与iOS系统的密码服务集成了的app都需要收费,免费的app没有办法直接唤起填密码,体验差了1Password等软件不少。后来就弃用了。

1Password一直听说其大名,但一直没有购买。忘了在哪一年,有一次在iOS进行大版本升级的时候,1Passwrod因为App Store的bug,可以免费获取,1Password也因此专门发了一篇blog,话中语气挺无奈的。我也就趁着那一次机会免费将买断制的1Password收入囊中,用了很长一段时间。

另外,还尝试过很多其他软件,比如EnPass、RoboForm、LastPass等,但因为这样那样的原因,都逐渐弃用。

在2019年前后碰到Bitwarden之后,因为其与iOS的集成友好、全平台支持、并且能自建服务器(All my data is belong to me!),逐渐将所有的密码都迁移到了其中,到目前已经有好多年的时间了。

下表是我使用过的,仍然有印象的一些软件的记录,有些软件因为时间久远、并且成文之时我没有专门检查,所列信息如有谬误之处,还请海涵:

密码软件是否收费是否开源是否支持多平台是否支持跨平台/设备同步公有云平台自建服务器云同步方案使用体验
Chrome/Safari等浏览器密码管理功能公有云平台与自身浏览器的集成非常好。
跨浏览器支持应该是没有的。
1Password公有云平台、买断制可以使用iCloud某次iOS升级造成bug,0元买断。
使用体验整体来说非常好。
EnPass公有云平台、iCloud
RoboForm时间久远,忘记了。。。
LastPass与浏览器集成,没有独立app。
曾经出过安全事故。
KeePassWebDAV、Google Drive、Dropbox等同步、浏览器集成体验较差
Bitwarden公有云平台、自建服务器非常好!
现在的选择
1. 所有这些密码管理软件,公有云平台同步都是收费功能。
2. 因为有的软件使用时间在很久之前,加上软件自身也在不断更新进步。如果上表有谬误,烦请提出,我将跟进修正。

Bitwarden介绍

以下介绍来自维基百科

Bitwarden是一款自由且开源的密码管理服务,用户可在加密的保管库中存储敏感信息(例如网站登录凭据)。Bitwarden平台提供有多种客户端应用程序,包括网页用户界面、桌面应用,浏览器扩展、移动应用以及命令行界面。Bitwarden提供云端托管服务,并支持自行部署解决方案。

Bitwarden提供了四种类型的记录,我们一般使用得最多的就是登录信息:

除此之外,它还支持了TOTP,自身登录也支持多种2FA。如果有需要的话,也可以将文件当作附件加入到Bitwarden的条目中进行管理。

如果需要的话,你可以到他的官网购买公有云托管服务,也可以自建服务器。

下文将介绍如何如何搭建一个Self-hosted的Bitwarden服务器端。如有需要,请参照上一篇文章了解如何配置traefik的服务自发现能力。

搭建Bitwarden服务器

闲话少说,先上Bitwarden的Docker Compose配置文件:

version: '3'

services:
  bitwarden:
    image: 'vaultwarden/server'
    container_name: bitwarden
    restart: unless-stopped
    networks:
      - web
    ports:
      - 8080:80  # 使用Traefik做反向代理的话,可以注释掉本段
    volumes:
      - './data:/data'                   # 映射本地数据储存目录
      - /etc/localtime:/etc/localtime:ro # 可选,使容器与本机时间同步
    environment:
      - SIGNUPS_ALLOWED=true                   # 是否允许自注册
      - DOMAIN=https://bitwarden.example.com   # 对外暴露的域名
    labels:
      - "traefik.enable=true"
      - "traefik.docker.network=web"

      - "traefik.http.routers.bitwarden.rule=Host(`bitwarden.example.com`)"
      - "traefik.http.routers.bitwarden.tls.certresolver=cfresolver"
      - "traefik.http.services.bitwarden.loadbalancer.server.port=80"

networks:
  web:
    external:
      true

请注意以下内容:

启动成功后,你就可以使用 http://YOUR-IP-ADDRESS:8080/ 或者 https://bitwarden.example.com 访问Bitwarden服务器并进行配置了。Bitwarden配置简单,所以具体细节本文略过不表。

NOTE: 此时你没有安装traefik也没有关系,这样的话,labels里面的内容将会被忽略。

在服务器上配置好用户后,就可以直接配置Bitwarden客户端进行使用了。

Bitwarden客户端配置

Bitwarden提供了主流浏览器、以及全平台的客户端,大家可以从Bitwarden的官网进行下载各平台客户端:

本文仅以macOS客户端为例展示如何配置。

配置

退出移动版