GoDaddy SSL 憑證購買及安裝在 Sails.js

Alan Syue
Feb 10, 2021

--

(圖片來源)

最近協助資訊種子官網安裝 SSL 憑證(綠色鎖終於回來了),打算紀錄一下操作流程。

先簡單說明一下資種官網的架構:
Server: Ubuntu 16.10
Web: Sails.js v0.11.5

原本打算用 certbot 取得免費憑證,但在機器上一直無法順利運行,後來就乾脆到 GoDaddy 購買憑證及安裝,以下將會介紹購買及安裝流程。

一、購買 SSL 憑證

首先第一步是購買 SSL 憑證,可參考官網資料,依據自己的需求選擇,我自己是選擇最左邊的方案。

接下來就會是一系列的購物車流程,這邊就不另行說明。

二、要求及驗證 SSL 憑證

購買完成後,接下來步驟是要求 SSL 憑證,可參考官網要求 SSL 憑證說明頁面,因為我購買的是標準 SSL,而且網域是在其他地方,符合第二項情況,

接著可以按照說明,把 CSR 及 private key 下載並存起來。

再來,GoDaddy 為了驗證你對申請網域是否有控制權限,會寄一封操作驗證信到你的信箱。

有兩種驗證方式:

我自己是採用 DNS 紀錄,更新後即可完成驗證。

三、下載憑證及安裝

接下來到 SSL 憑證頁面,點選購買網域的憑證。

然後根據伺服器類型下載

下載完成並解壓縮後,會獲得三個檔案。

資訊種子官網使用的是 sails.js,並且無使用任何反向代理。首先我們先把以下三個檔案傳上去到主機,並在專案新建資料夾:config/ssl/

  1. gd_bundle-g2-g1.crt
  2. ee05f2ba665abd23.crt (前面可能是別斷隨機亂數)
  3. generated-private-key.txt (步驟二下載的 private key)

備註:我有再另行更換名字,如下對應表提供參考

接下來到專案資料夾的 config/env/production.js,port 443 的地方加上 ssl,修改如下範例程式碼,重新啟動後就完成了。

/***************************************************************************
* Set the port in the production environment to 80 *
***************************************************************************/
port: 443,
ssl: {
ca: require('fs').readFileSync(require('path').resolve(__dirname,'../ssl/gd-bundle.crt'), 'utf8'),
key: require('fs').readFileSync(require('path').resolve(__dirname,'../ssl/ssl.key'), 'utf8'),
cert: require('fs').readFileSync(require('path').resolve(__dirname,'../ssl/ssl.crt'), 'utf8')
},
policies: {
'*': 'isHTTPS'
}

小結

在工作上,公司有 DevOps 處理完 SSL 的相關事務,這算是我第一次自己實際設定,過程中研究了蠻多 SSL 相關資料,設定成功後覺得非常開心,希望能幫助到有相同需求的人,如果文章內容有任何錯誤,再麻煩告知,謝謝!

--

--