快轉到主要內容

自架密碼管理器Bitwarden的伺服器「Vaultwarden」,備份現有帳號密碼

· 民國114年乙巳年
·
切換繁體/簡體
分類   Linux系統 Self-hosting自架
標籤   Bitwarden
目錄

Bitwarden是一款開源的密碼管理器,Ivon主要用它在瀏覽器和手機上自動填入密碼。並用它紀錄信用卡號碼、狗窩住址、還原金鑰、小祕密等等資訊。

Bitwarden免費版方案許久,資料都是存在官方伺服器,我想得準備一個備案,免得Bitwarden公司日後開始作惡。

Bitwarden是開源專案,從客戶端到伺服端都是可以自架的。我們並沒有說一定要用Bitwarden公司官方的伺服器,可以自己架一個。

Bitwarden客戶端我會繼續沿用,接下來要做的是自架一個相容Bitwarden的伺服器,將資料同步過去。

官方維護的伺服器在這裡:Bitwarden infrastructure,用C#寫成,可是部署指示寫的有點複雜,不知道為什麼都用Docker了還要用指令稿啟動~大概是為企業用戶準備的吧。

我看了一些教學後,發現官方伺服器可以用「Vaultwarden」取代。用Rust寫成,減少原專案的複雜度。相容Bitwarden的API。

雖是非官方專案,不過Vaultwarden其中一個開發者有被Bitwarden公司僱用,允許在業餘時間貢獻專案。

考慮到我只是要簡單的同步密碼,我不追求複雜的Bitwarden企業版功能。這些內建的功能就夠用了~

1. 準備SSL憑證
#

為了有效保護密碼,給Vaultwarden伺服器上SSL是必須的。

Vaultwarden在瀏覽器有用到Web Crypto API,會需要HTTS連線,否則網頁會無法載入。

最好準備一個域名,方便從外部存取。

如果使用內網穿透軟體的話,我用Tailscale Serve或者Cloudflare Tunnel達成HTTPS效果。

可以額外加上Nginx的反向代理。

2. 用Docker部署Valutwarden
#

  1. 在Linux安裝Docker

  2. 參考官方文件,新增docker-compose

mkdir -p ~/vaultwarden/

cd ~/vaultwarden/

vim docker-compose.yml
  1. 填入以下內容。DOMAIN就填寫你的域名,我是使用子域名方便辨識Vaultwarden所在的網址。127.0.0.1是僅供http本機連線測試使用的。因為我有使用HTTPS,所以左邊的http將其去除,通訊埠可以設定成自己想要的樣子。
services:
  vaultwarden:
    image: vaultwarden/server:latest
    container_name: vaultwarden
    restart: unless-stopped
    environment:
      DOMAIN: "https://vault.example.com"
    volumes:
      - ./vw-data/:/data/
    ports:
      - 8000:80
  1. 啟動服務
docker compose up -d

3. 初始化Valutwarden
#

註解:你不需要註冊Bitwarden官方伺服器的帳號也可以用Vaultwarden。

跟使用Bitwarden官方服務一樣,用電子郵件在自己的伺服器上註冊一個帳號,再設定主密碼即可。

4. 匯入現有Bitwarden帳號的密碼
#

Bitwarden Web vault,點工具 → 匯出 → 匯出.json密碼

然後在Valutwarden的工具 → 匯入,格式應當是完全相容的。

5. 瀏覽器擴充功能登入Valutwarden
#

任一Bitwarden的客戶端都可以無縫切換到自架的Vaultwardern的伺服器。

以瀏覽器擴充功能為例,在登入面板,將網域切換到自架伺服器,輸入自己的域名,然後登入。

相關文章

試用Joplin網頁版 (Web App),免安裝程式就可以寫Markdown筆記
分類   Linux系統 Self-hosting自架
標籤   Joplin
自架音樂串流平台,使用ListenBrainz與last.fm替代Spotify的音樂聆聽回顧
分類   Linux系統 Self-hosting自架
標籤   Media Server
架設Redlib替代前端,免登入瀏覽Reddit sub貼文,防止Reddit窺探隱私
分類   Linux系統 Self-hosting自架
標籤   Reddit

此處提供二種留言板。點選按鈕,選擇您覺得方便的留言板。

(留言板載入中)這是Giscus留言板,需要Github帳號才能留言。支援Markdown語法,若要上傳圖片請善用外部圖床。您的留言會在Github Discussions向所有人公開。

Click here to edit your comments.

(留言板載入中)這是Disqus留言板,您可能會看到Disqus強制投放的廣告。為防止垃圾內容,有時留言可能會被系統判定需審核,導致延遲顯示,請見諒。若要上傳圖片請善用外部圖床網站。