在前一篇文章,我們了解了如何自訂Linode Object Storage的網域,但因Object Storage需要自己手動上傳SSL憑證,且Let’s Encrypt的憑證90天會到期,因此每到即將過期的時間,勢必就得再手動更新一次。因此,這篇就要繼續來了解,如何自動更新憑證。
首先,我們上次安裝的certbot,會自動排程更新憑證,確保憑證不會過期。而我們要做的就是,將certbot更新後的 fullchain.pem 與 private.pem 透過Linode的API重新上傳到Linode。
於是,我寫了一個nodejs的小工具,來專門處理這件事情。在開始之前,先用 node -v 確認一下是否有安裝 nodejs 並且版本 > 16.20。
- 請在之前的教學中,安裝了certbot的那台機器中 clone我的這個repo,執行:git clone git@github.com:boggyjan/linode-object-storage-cert-updater.git
- 接著進入linode-object-storage-cert-updater目錄,執行:npm i,安裝相依套件
- 複製兩個sample config成為真正的config:
- 執行:cp pm2.config.cjs.sample pm2.config.cjs
- 執行:cp updater.config.js.sample updater.config.js
- 修改 updater.config.js
- 填入Linode API Token,可到這裡新增
- 在certs陣列裡修改成你的 region, bucket名稱,以及這台機器中存放憑證的地方 certPath
- 範例中為兩個bucket,可視需求新增或移除
- 啟動自動更新,因需讀取etc目錄中的檔案需root權限,請用root身份執行pm2:
- sudo su root
- pm2 start pm2.config.cjs
- 設定開機就執行:pm2 startup && pm2 save
在〈自動更新 Linode Object Storage SSL/TLS憑證〉中有 1 則留言