使用Docker搭建自己的Bitwarden密碼管理服務

Java小學生丶發表於2022-07-11

相信身為開發者,總會在各種網站中註冊賬號,為了方面記憶可以使用同一套賬號密碼進行註冊,自從前段時間學習通時間撞庫後有些人已經開始瘋狂改密碼了,可是密碼一多就很難記憶,最好找個地方儲存賬戶資訊

我曾經使用過手機便籤、筆記軟體,Edge的同步功能,甚至私有的GIT倉庫來記密碼,效果都不是很好,於是前段時間瘋狂尋找開源專案,想要搭建自己的密碼管理系統,終於找到了Bitwarden這個神仙

準備工作

  1. 需要有可以使用伺服器以及可以使用的域名

  2. 瞭解並熟悉Docker的簡單使用

  3. 瞭解並熟悉Nginx的使用

  4. 瞭解HTTPS

瞭解Bitwarden

https://bitwarden.com/

Bitwarden是一款開源的密碼管理工具,可以直接訪問他們的官網註冊並使用他們的服務,將賬號資訊交給他們管理,也可以自行搭建服務,將賬號密碼存在自己的伺服器上,供自己或者朋友進行使用

根據最近總結的經驗來看,部署Bitwarden的方式大概總結了三種:

  1. 使用官方提供的的sh指令碼進行安裝,需要系統中安裝好docker、docker-compse

這種方法我已經踩過坑了,首先的確是可以用的,但是執行安裝指令碼後啟動服務,你會發現Docker中多了十多個容器,對於我這種強迫症來說接受不了,而且我的Docker中已經事先安裝了Nginx並配置了網站的反向代理,會和官方提供的指令碼中的nginx衝突導致執行失敗,這個方案直接被pass

  1. 使用第三方維護的Docker映象:Bitwarden_RS

https://hub.docker.com/r/bitwardenrs/server

這個是由第三方個人維護的整合好的bitwarden映象,pull後可以直接執行並訪問,這個映象我也用了一段時間,這期間深深被bitwarden的功能折服,打算寫一篇部落格介紹給更多的人用,所以對這個映象稍微瞭解一下,發現這個映象已經不在維護了,但是功能可以正常使用,如果不介意的話可以使用,但不推薦

image

第三種方法就是我目前正在使用的方法,我會在下面介紹安裝方法

快速部署Bitwarden

https://hub.docker.com/r/vaultwarden/server

注意:部署Bitwarden要求系統中安裝了Docker和Nginx服務

推薦使用Vaultwarden映象,他與第二種安裝方案中的映象是同一個作者,因docker映象名稱容易引人誤會所以另開一個映象,如果想快速安裝Bitwarden使用下面這段命令就可以

# -p埠對映不多解釋,-v繫結資料目錄不多解釋
docker run -d --name bw \
  -p 8002:80 \
  -v /opt/docker/bw/:/data/ \
  vaultwarden/server:latest

然後通過伺服器IP地址+埠號就可以訪問服務了,如下所示

image

但是僅僅這樣是用不了的,出於安全考慮Bitwarden要求必須使用https進行訪問,否則報錯

image

之前購買VPS的的部落格中提過,我的域名是交給CloudFlare管理的,這裡需要開啟強制https功能,如果你沒有這個條件的話需要用自己的域名申請一個SSL證書上傳至伺服器,然後配置Nginx,這裡請百度

image

然後配置域名解析,將域名解析到你的伺服器IP地址上,如下所示

image

然後編輯nginx的配置檔案,配置Bitwarden的反向代理

server {
    listen       80;
    server_name  bitwarden.hanzhe.site;
    location / {
        proxy_pass  http://666.666.666.666:8002;
    }
}

訪問配置好的域名,就可以訪問到Bitwarden網站了,強制https後註冊登入都一切順利,註冊登入後在這個位置設定中文

image

之後就可以正常使用了,可以在儲存密碼後安裝瀏覽器外掛,設定遠端地址後檢視賬號密碼,或者使用密碼填充

image

image

image

image

也可以GooglePlay商店或者百度下載手機端,同樣設定伺服器URL後登陸,進行新增檢視賬戶資訊,IOS也可以

https://bitwarden.hanzhe.site 這個就作為演示站供大家參考,已開放註冊,信得過的話也可以聯絡我邀請你使用我私有的bitwarden

Bitwarden高階用法

在建立容器的時候可以指定很多環境變數,這裡簡單介紹幾個

管理員訪問密碼,設定密碼後可以訪問管理頁面
-e ADMIN_TOKEN=some_random_token_as_per_above_explanation \
是否允許註冊,false為禁止之策
-e SIGNUPS_ALLOWED=false \
是否允許邀請註冊,在禁止註冊的情況下可以邀請某個指定的使用者進行註冊
-e INVITATIONS_ALLOWED=false \
是否直接在頁面顯示密碼提示,不通過郵箱
-e SHOW_PASSWORD_HINT=false \

更多配置項請參照官方文件 https://github.com/dani-garcia/vaultwarden/wiki

相關文章