【5分鐘玩轉Lighthouse】搭建bitwarden個人密碼管理器

blank

【5分鐘玩轉Lighthouse】搭建bitwarden個人密碼管理器

0x00 背景概述

現在各種網站和手機APP都要求設置密碼和輸入密碼,每個人都要設置大量的密碼。 如果都設為統一密碼,就存在一旦一個密碼被攻破,其他密碼都失效的情況。 如果要分別設置為不同密碼,那麼記住密碼又成了一個困難的問題。 所以密碼管理工具也就應運而生,比較有名的密碼管理工具有1Password,OneSafe,LastPass,但是這些工具大多數需要收費並且密碼存儲在其提供的伺服器上。 密碼交給別人管理,還是有些不放心。

為了解決個人對密碼管理的需求,在我們本期【5分鐘玩轉Lighthouse】系列教程中,將為大家介紹如何在騰訊雲Lighthouse輕量應用伺服器上基於Docker搭建bitwarden私人密碼管理器。

為什麼選在Lighthouse和bitwarden呢? 原因如下:

1. Lighthouse輕量應用伺服器創建簡單,性價比高,自帶Docker鏡像。

2. bitwarden是一款有免費版且開源的密碼管理工具,最重的是它允許自建密碼管理服務,完全不用擔心密碼被別人管理的問題。 同時biwarden對Windows,Linux,Mac,iPhone,Android以及Chrome等多種主流瀏覽器都支援,完全滿足個人跨平臺、跨終端的密碼管理需求。

0x01 準備Lighthouse輕量應用伺服器

我們首先在騰訊雲Lighthouse輕量應用伺服器購買頁面,購買一台伺服器。 如下圖所示。 伺服器的具體設定如下:

  • 地域:台灣香港
  • 鏡像:應用鏡像 Docker
  • 實例套餐:CPU 2核 記憶體2G SSD 80GB 峰值頻寬 30Mbps 每月流量3072GB
  • 實例名稱:輸入bitwarden即可。
blank

點擊"立即購買",付款之後伺服器就開始創建了。 當伺服器狀態為"運行中"時,我們就可以使用了。

blank

設定選擇理由:

套餐:Bitwarden建議使用CPU:2核 記憶體:2G 磁碟25G的配置,因此我們選擇了上述套餐。

鏡像:搭建bitwarden伺服器我們使用Docker鏡像的方式,直接選擇Lighthouse自帶的Docker鏡像即可。

有了伺服器,接下來我們就要搭建bitwarden密碼管理器了。

0x02 搭建bitwarden個人密碼管理器

1. 註冊功能變數名稱與配置解析

註冊功能變數名稱

為了方便記憶我們的bitwarden密碼管理器服務地址,我們先申請一個功能變數名稱以方便訪問。 進入輕量應用伺服器的實例詳情頁面,點擊 「註冊功能變數名稱」。。

blank

接下來參考騰訊雲官方文檔《功能變數名稱註冊》完成功能變數名稱的購買、註冊和實名認證。

如下圖所示,功能變數名稱購買成功。

blank

功能變數名稱解析

點擊功能變數名稱後的解析,添加一條A記錄,主機記錄填 「WWW」,記錄值填寫輕量應用伺服器的外網IP。

blank

2. 申請與下載SSL證書

為了保證輕量應用伺服器通信的安全性,我們要使用HTTPS協議進行通信。 因此我們再申請SSL證書具體參考騰訊雲官方文檔《SSL證書新手入門》,申請「域名型免費版SSL證書」即可。

申請好證書后,點擊「下載證書」,留待後面上傳到輕量應用伺服器上,配置Nginx使用的SSL證書。

blank

3. 安裝bitwarden

我們先部署bitwarden,然後使用Nginx作為反向代理,將請求轉發到bitwarden伺服器上。

Docker部署bitwarden

mkdir /data/bitwarden
docker run  -d 
            --rm 
            --name bitwarden 
            -p 8080:80 
            -p 3012:3012 
            -e SIGNUPS_ALLOWED=true 
            -e WEB_VAULT_ENABLED=true 
            -e DOMAIN=https://mydomain.cn 
            -v /data/bitwarden:/data 
            bitwardenrs/server:latest

上面命令的各个参数含义如下:
-d 在后台运行
--rm 容器停止运行后,自动删除容器文件
--name bitwarden容器的名字为bitwarden
-p 8080:80 容器的端口80映射到8080,在Nginx配置
-p 3012:3012 容器的端口3012映射到3012
-e SIGNUPS_ALLOWED=true 设置环境变量SIGNUPS_ALLOWED=true允许用户注册
-e WBE_VAULT_ENABLE=true 设置环境变量WBE_VAULT_ENABLE=true
-e DOMAIN=https://mydomain.cn设置域名,需要替换成自己申请的域名
-v /data/bitwarden:/data 容器的/data/目录映射到宿主机的/data/bitwarden目录

4. 安裝並配置Nginx

接下來使用docker安裝Nginx並配置SSL證書與反向代理。

安裝Nginx

docker run 
           --rm 
           --name nginx 
           -d 
           nginx

上面命令的各个参数含义如下:
--rm 容器停止运行后,自动删除容器文件
--name nginx 容器的名字为nginx
-d 在后台运行

拷貝配置

docker cp nginx:/etc/nginx /data

上面命令的含义:将nginx容器内的/etc/nginx目录复制到宿主机的/data目录

配置SSL證書與反向代理

解壓從騰訊雲證書控制台下載的SSL證書檔。 目錄結構如下,我們使Nginx目錄中的.crt和.key檔使用。

mkdir /data/nginx/certs
cp ./Nginx/1_mydomain _bundle.crt /data/nginx/certs
cp ./Nginx/2_mydomain.key /data/nginx/certs

打開nginx檔/data/nginx/conf.d/default.conf中新增如下內容:

HTTP 80埠新增如下配置:

server {
    listen 80;
    ……此处省略无修改的内容
    return 301 https://$host$request_uri; #将http的域名请求转成https
}

HTTPS 443埠新增如下配置:

server {
  listen 443 ssl http2;
  server_name localhost;
  ssl on;
  ssl_certificate /etc/nginx/certs/1_mydomain_bundle.crt; #配置证书文件
  ssl_certificate_key /etc/nginx/certs/2_mydomain.key; #配置证书私钥文件
  ssl_session_timeout 5m;
  ssl_ciphers HIGH:!aNULL:!MD5;
  ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
  ssl_prefer_server_ciphers on;

   #配置反向代理,请求代理发送到8080端口
  location / { 
    proxy_pass http://127.0.0.1:8080; 
    proxy_set_header Host $host; 
    proxy_set_header X-Real-IP $remote_addr; 
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
    proxy_set_header X-Forwarded-Proto $scheme; 
    root /usr/share/nginx/html;
   index index.html index.htm;
 }

 location /notifications/hub { 
    proxy_pass http://127.0.0.1:3012; 
    proxy_set_header Upgrade $http_upgrade; 
    proxy_set_header Connection "upgrade"; 
 }

 location /notifications/hub/negotiate { 
   proxy_pass http://127.0.0.1:8080; 
 }

}

重啟nginx

重啟nginx使配置生效

docker restart nginx

至此我們就完成了bitwarden密碼管理器的安裝和部署。

0x03 使用bitwarden管理密碼

訪問我們的功能變數名稱就可以訪問bitwarden的主頁,接下來我們來介紹一下如何使用自己bitwarden管理我們各個平臺與各個終端上的密碼。

blank

1. 註冊bitwarden帳號

首先我們使用自己的電子郵件地址註冊一個帳號。

點擊提交后,即表示註冊成功。 接下來會返回到登錄頁面,輸入電子郵件位址,和主密碼即可登錄。 下圖顯示註冊帳號后為空的密碼庫。

blank

2. 禁止其他人註冊

由於這個bitwarden伺服器是供個人使用,我們在註冊完帳號后,要關閉註冊功能,防止他人註冊。

# 先停止bitwarden容器
docker stop bitwarden
# 设置环境变量不允许注册用户-e SIGNUPS_ALLOWED=false,再启动bitwarden容器
docker run -d 
 --rm 
 --name bitwarden 
 -p 8080:80 
 -p 3012:3012 
 -e SIGNUPS_ALLOWED=false 
 -e WEB_VAULT_ENABLED=true 
 -e DOMAIN=https://mydomain 
 -v /data/bitwarden:/data 
  bitwardenrs/server:latest

此時再註冊帳號時,會提示Registration not allowed or user already exists.這樣的錯誤。

blank

3. chrome上使用bitwarden

chrome網上應用店搜索bitwarden,並添加至Chrome中。

blank

設置我們自建bitwarden伺服器URL的位址。

blank

接下來我們就體驗一下,bitwarden自動保存密碼的功能。 在chrome瀏覽器中,我們登錄果殼網,bitwarden會自動檢測需要保存的使用者名和密碼。 點擊"是的,現在保存"即可。

blank

接下來,我們退出帳號,再次重新登錄,點擊bitwarden中的登錄專案,account.guokr.com,密碼使用者名和密碼就會自動填充好。

blank

4. IOS 上使用bitwarden

在AppStore上搜索bitwarden,下載Bitwarden密碼管理器。

打開APP,點擊設置圖示,設置我們搭建的bitwarden伺服器功能變數名稱。

blank

點擊「登錄」,用註冊的bitwarden賬號登錄到我們搭建的伺服器上。 接下來用safari瀏覽器打開account.guokr.com,此時safari會自動彈出"使用Bitwarden,登錄 guokr.com",選擇我們要登錄的賬號,確定登錄。

blank

bitwarden會自動填充上使用者名和密碼,登錄成功。

0x04 小結

本教程通過藉助Lighthouse輕量應用伺服器和bitwarden,我們搭建了個人密碼管理器。 輕量應用伺服器提供的Docker鏡像,為我們提供了一鍵運行容器的環境,bitwarden提供的跨平臺,跨終端能力,使得我們再也不用為管理密碼頭疼了。 最重要的是bitwarden可以自行部署的能力,讓我們把密碼安全掌握在自己的手裡,這才是密碼管理器最讓人放心的地方。

更多騰訊雲伺服器技術乾貨、優惠活動、交流社區,敬請關注「騰訊雲伺服器」微信公眾號(TencentCVM)

想了解更多關於 Facebook 與 Google 廣告投放?

What do you think?

Written by marketer

blank

前端開發者必備的12個工具

blank

Lighthouse架構剖析