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 相關資料,設定成功後覺得非常開心,希望能幫助到有相同需求的人,如果文章內容有任何錯誤,再麻煩告知,謝謝!

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

Alan Syue
Alan Syue

Written by Alan Syue

Backend Engineer at UPN | Love to share everything

No responses yet

Write a response