紀錄為客戶對外服務網站導入 CDN 的心路歷程。
說明
取得伺服器憑證、中繼憑證以及私密金鑰
從原本的 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 |
A | Server IP |
調整後:
域名 | DNS 類型 | 指向 |
---|---|---|
www |
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 可以區別對應到不同的站台。