使用自建主機安裝bitwarden堕澄,替代付費Lastpass

Lastpass續(xù)費漲到36$/年膜蛔,用不起了,租個服務器自己host個開源的解決方案涩搓。

bitwarden-vs-lastpass.jpg

參考文檔:

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

https://github.com/dani-garcia/bitwarden_rs/wiki/Private-CA-and-self-signed-certs-that-work-with-Chrome

基礎知識:

  • 安裝完docker
  • 掌握https污秆、證書申請
  • 掌握nginx等webserver技術
  • 有個自己的域名

好了,我們開始

在一臺接入了互聯(lián)網(wǎng)的主機上昧甘,下載docker image并運行:

docker pull bitwardenrs/server:latest

docker run -d --name bitwarden -v /bw-data/:/data/ -p 80:80 bitwardenrs/server:latest

sudo docker run -d --name bitwarden -v /home/ubuntu/bitwarden/bw-data:/data/ -p 443:80 bitwardenrs/server:latest

附:調教docker的常用命令:

sudo docker kill bitwarden

sudo docker rm bitwarden

然鵝良拼,事情并沒有那么簡單:

坑1:Chrome無法注冊用戶

結果無法使用,原因如下:

重要說明:某些網(wǎng)絡瀏覽器(例如Chrome)不允許在不安全的上下文中使用Web Crypto API庸推。在這種情況下,您可能會收到諸如無法讀取屬性“ importKey”的錯誤浇冰。要解決此問題贬媒,您需要從HTTPS訪問Web保管庫。

坑2:Android手機APP連不上服務器

  • Android手機上的APP登陸時提示:
java.security.cert.certpathvalidatorexception trust anchor for certification path not found

HTTPS

解決坑1-2的關鍵肘习,就是正確地配置https际乘。啟用https,可以參考這里:

https://github.com/dani-garcia/bitwarden_rs/wiki/Enabling-HTTPS

簡而言之井厌,就是在docker命令中蚓庭,指定證書相關參數(shù)即可致讥。但是,得先有個證書呀器赞。

SSL證書

要弄個證書來垢袱,首先要有個域名,然后港柜,證明這個域名是你能控制的请契。這樣,證書頒發(fā)機構才同意給你頒發(fā)證書夏醉。于是爽锥,這里需要做兩件事:

  • 用自己的域名申請一個證書(參見:用acme.sh申請證書)
  • 把這個證書配到docker上(參見:大成功)

關于坑2-Android APP連不上的問題:本質是該服務器的https證書必須要達到基線要求

基線要求參見文檔:

https://github.com/dani-garcia/bitwarden_rs/wiki/Enabling-HTTPS

當您的bitwarden_rs服務器可供外界使用時畔柔,您可以使用https://comodosslstore.com/ssltools/ssl-checker.php來檢查SSL證書(包括該鏈)是否有效氯夷。沒有鏈,Android設備將無法連接靶擦。

驗證SSL證書的網(wǎng)站長這樣腮考,把網(wǎng)址填進去,CHECK:

image-20200128022125668.png

如果成功玄捕,應該得到兩把綠色的鎖頭踩蔚,一個是server,一個是chan枚粘,長得像下面這樣:

image-20200128022335972.png

https://github.com/dani-garcia/bitwarden_rs/wiki/Enabling-HTTPS

您也可以使用https://www.ssllabs.com/ssltest/analyze.html進行檢查馅闽,但是該站點不支持自定義端口。另外馍迄,請記住選中“不要在面板上顯示結果”復選框福也,否則您的系統(tǒng)將在“最近看到”列表中可見。

這個地址長這樣:

image-20200128022834659.png

這個網(wǎng)址會跑1-2分鐘柬姚,如果成功拟杉,就會得到A:

image-20200128022955415.png

得到B或者以下,Android APP就是無法使用的:

image-20200127021305598.png

注意量承,參考了一下這個搬设,https://tic.gal/en/java-security-cert-certpathvalidatorexception-trust-anchor-for-certification-path-not-found/,是一個其他的app撕捍,也有cert path exception的問題拿穴,這里給出的理由是,如果沒連接互聯(lián)網(wǎng)(我理解就是用自簽名證書忧风,也可能是我沒配置對默色,嗯瓶蚂,反正就是不行沉馆,在這個坑里爬了好久)是不可能得到合適的SSL證書的熊经,放棄https覆劈,滾回去用http。要么吃度,就去網(wǎng)站里面搞個A出來甩挫。我感覺是因為自簽名證書的chain只有一層,在這個報告里面監(jiān)測椿每,就會提示 chain incomplete伊者,最高標準就是B,達不到A间护。

另外亦渗,incomplete chain的問題,可以看看這個找找靈感:https://superuser.com/questions/644343/how-do-you-fix-an-incomplete-ssl-chain 汁尺。還可以用這個網(wǎng)站法精,去生成chain,https://certificatechain.io/痴突。當然亿虽,自簽名證書還不如直接申請一個免費的Let's Encrypt的3個月自動更新的證書。

用acme.sh申請證書

https://github.com/Neilpang/acme.sh

acme.sh是一個申請免費證書的腳本苞也,有效期3個月,到期需要更新粘秆。相關文檔網(wǎng)上一大堆如迟,是個不錯的github項目。附鏈接一個攻走,供大家參考殷勘。

acme.sh 需要先安裝,再使用昔搂。

https://stormy.fun/2019/01/05/acme-sh%E8%87%AA%E5%8A%A8%E9%83%A8%E7%BD%B2%E6%9B%B4%E6%96%B0SSL%E8%AF%81%E4%B9%A6/

坑3:acme.sh申請不成功

使用acme我遇到的問題是沒有找準webroot玲销。因為用其他站自帶的nginx,沒改過配置摘符,想當然地把非80端口site的webroot填到參數(shù)里贤斜。以為standalone模式可以指定端口,但是查了文檔才發(fā)現(xiàn)逛裤,standalone是起一個webserver臨時監(jiān)聽到80端口瘩绒,而指定端口的參數(shù),只有在反向代理后面才有效带族。

然而因為沒找準webroot锁荔,導致調試失敗次數(shù)過多,觸發(fā)了證書網(wǎng)站的限制蝙砌,導致還要等1小時以上才能再次嘗試阳堕。

https://letsencrypt.org/zh-cn/docs/rate-limits/

每個賬戶每小時每域名有最多驗證失敗 5 次的限制跋理。該限制次數(shù)在我們的測試環(huán)境中更高,因此您可以使用該環(huán)境來調試連接問題恬总。

解決這個問題前普,就是仔細查nginx的配置文檔,結果從default site找到了80端口對應的webroot越驻,填上去汁政,完美解決,下面是申請證書成功了的命令與提示缀旁。

/home/ubuntu/.acme.sh/acme.sh --issue -d test.com -d www.test.com -w /var/www/html  --debug

......
[Tue Jan 28 01:38:57 CST 2020] Your cert is in  /root/.acme.sh/test.com/test.com.cer 
[Tue Jan 28 01:38:57 CST 2020] Your cert key is in  /root/.acme.sh/test.com/test.com.key 
[Tue Jan 28 01:38:57 CST 2020] v2 chain.
[Tue Jan 28 01:38:57 CST 2020] The intermediate CA cert is in  /root/.acme.sh/test.com/ca.cer 
[Tue Jan 28 01:38:57 CST 2020] And the full chain certs is there:  /root/.acme.sh/test.com/fullchain.cer 
[Tue Jan 28 01:38:57 CST 2020] _on_issue_success

大成功

按照生成證書的地址记劈,配置docker的目錄鏡像,用下面的命令跑起來并巍,驗證ssl通過目木,Android登陸正常:

sudo docker run -d --name bitwarden \
-e ROCKET_TLS='{certs="/ssl/fullchain.cer",key="/ssl/test.com.key"}' \
-v /home/ubuntu/bitwarden/bw-data:/data/ \
-v /root/.acme.sh/test.com/:/ssl/ \
-p 443:80 bitwardenrs/server:latest
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市懊渡,隨后出現(xiàn)的幾起案子刽射,更是在濱河造成了極大的恐慌,老刑警劉巖剃执,帶你破解...
    沈念sama閱讀 218,284評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件誓禁,死亡現(xiàn)場離奇詭異,居然都是意外死亡肾档,警方通過查閱死者的電腦和手機摹恰,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來怒见,“玉大人俗慈,你說我怎么就攤上這事∏菜#” “怎么了闺阱?”我有些...
    開封第一講書人閱讀 164,614評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長舵变。 經(jīng)常有香客問我酣溃,道長,這世上最難降的妖魔是什么纪隙? 我笑而不...
    開封第一講書人閱讀 58,671評論 1 293
  • 正文 為了忘掉前任救拉,我火速辦了婚禮,結果婚禮上瘫拣,老公的妹妹穿的比我還像新娘亿絮。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 67,699評論 6 392
  • 文/花漫 我一把揭開白布派昧。 她就那樣靜靜地躺著黔姜,像睡著了一般。 火紅的嫁衣襯著肌膚如雪蒂萎。 梳的紋絲不亂的頭發(fā)上秆吵,一...
    開封第一講書人閱讀 51,562評論 1 305
  • 那天,我揣著相機與錄音五慈,去河邊找鬼纳寂。 笑死,一個胖子當著我的面吹牛泻拦,可吹牛的內(nèi)容都是我干的毙芜。 我是一名探鬼主播,決...
    沈念sama閱讀 40,309評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼争拐,長吁一口氣:“原來是場噩夢啊……” “哼腋粥!你這毒婦竟也來了?” 一聲冷哼從身側響起架曹,我...
    開封第一講書人閱讀 39,223評論 0 276
  • 序言:老撾萬榮一對情侶失蹤隘冲,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后绑雄,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體展辞,經(jīng)...
    沈念sama閱讀 45,668評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,859評論 3 336
  • 正文 我和宋清朗相戀三年万牺,在試婚紗的時候發(fā)現(xiàn)自己被綠了纵竖。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,981評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡杏愤,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出已脓,到底是詐尸還是另有隱情珊楼,我是刑警寧澤,帶...
    沈念sama閱讀 35,705評論 5 347
  • 正文 年R本政府宣布度液,位于F島的核電站厕宗,受9級特大地震影響,放射性物質發(fā)生泄漏堕担。R本人自食惡果不足惜已慢,卻給世界環(huán)境...
    茶點故事閱讀 41,310評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望霹购。 院中可真熱鬧佑惠,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,904評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至赌厅,卻和暖如春穷绵,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背特愿。 一陣腳步聲響...
    開封第一講書人閱讀 33,023評論 1 270
  • 我被黑心中介騙來泰國打工仲墨, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人揍障。 一個月前我還...
    沈念sama閱讀 48,146評論 3 370
  • 正文 我出身青樓目养,卻偏偏與公主長得像,于是被迫代替她去往敵國和親亚兄。 傳聞我的和親對象是個殘疾皇子混稽,可洞房花燭夜當晚...
    茶點故事閱讀 44,933評論 2 355

推薦閱讀更多精彩內(nèi)容