實戰對外服務網站 CDN 導入 (以中華電信 Hinet CDN 為範例)


  1. 說明
    1. 取得伺服器憑證、中繼憑證以及私密金鑰
    2. 外部 DNS 設定
      1. CDN 伺服器與原伺服器關係
    3. 設定 CDN 後台

紀錄為客戶對外服務網站導入 CDN 的心路歷程。

logo

說明

取得伺服器憑證、中繼憑證以及私密金鑰

從原本的 cert.pfx 分離出伺服器憑證、中繼憑證以及私密金鑰,需要使用 openssl 進行作業。

如何取得 openssl?如果有安裝 git for windows 可以在下列路徑取得 C:\Program Files\Git\usr\bin

在分離過程如果有明文密碼,例如密碼為 seCretPa55W0rd 要輸入為參數才能夠進行分離。

openssl.exe pkcs12 -in .\cert.pfx -out server.cer -nodes -password "pass:seCretPa55W0rd"

分離的結果會儲存在 server.cer 檔案之中,包含包含私密金鑰、伺服器憑證以及相關的中繼憑證 (可能為多個)。

進階參考保哥所分享的 如何在收到 PFX 或 CER 憑證檔之後使用 OpenSSL 進行常見的格式轉換

外部 DNS 設定

為了保持原本提供服務的域名持續使用,必須要另設一個新的域名提供 CDN 專門指向,而原本的域名則以 CNAME 的方式指向 CDN 伺服器。

調整前:

域名 DNS 類型 指向
www.sdwh.dev A Server IP

調整後:

域名 DNS 類型 指向
www.sdwh.dev CNAME www-sdwh.cdn.hinet.net
wwwori.sdwh.dev A Server IP

CDN 伺服器與原伺服器關係

第一張圖片的架構為不使用 CDN 時,外部 DNS 提供 A Record 的方式,讓外部可以直接連到網站所在的伺服器。

第二張圖片的架構為使用 CDN 時,藉由在外部 DNS 新增 CNAME 的方式,將原本的網址指向 CDN 伺服器。

並且在 CND Portal 上進行設定,對應到既有的 A Record,讓 CDN Server 可以連結到實際的網站所在伺服器,並將快取結果對外服務。

可以進一步限制實體網站所在伺服器僅限 CDN Server 連線。

第三張圖片的架構為使用 CDN 時,若網站所在的伺服器有多個站台 (multi-tenant) 則需要在外部 DNS 設定額外的原站域名,讓 CDN Server 可以區別對應到不同的站台。

設定 CDN 後台