CDN採Reverse Proxy架構,所以使用者端HTTPS的憑證驗證會在CDN主機進行。
而CDN主機要講請求轉發至源站時,也會以HTTPS的方式進行連線,因此源站主機仍然也需要確保憑證的效期。
可以從圖上了解,使者端到CDN主機的憑證,會由CDN商平台來進行管理跟後續的更新。
而源站的憑證還是得由貴司持續管理及更新,這點務必要跟管理單位告知。
CDN端憑證的重點資訊
在進行憑證申請流程跟佈署前,有些重點要先讓你知道:
憑證安全級別 (security levels)
分為 Enhanced TLS 、 Standard TLS 、Akamai shared certificate 共三種,分別的用途是:
Enhanced TLS : 適用於具有高保證安全性需求的網站和內容,例如 FedRAMP 和 PCI 合規性。
Standard TLS :不符合FedRAMP或PCI標準,適用於純靜態以及視訊串流等網站類型。
Akamai shared certificate :由Akamai自行維護的憑證,換句話說憑證上的domain name不是你家網域喔。先前提到的Download Delivery模組存放較大的靜態物件時,這個對外的憑證就可以用這個。
參考文件詳Akamai官方 準備邊緣憑證
憑證等級
分為網域名稱驗證(DV)、組織驗證(OV)和延伸驗證(EV)三種。
另外,如果有萬用或是多網域的情境,也分為Single、Wildcard、SAN、Wildcard SAN不同類型的憑證。
SNI 伺服器名稱指示 : 使用者請求流量進行TLS交握時,伺服器會確認你要連線的網域並提供給你對應的憑證。但如果一個IP後面有一堆主機且有多個域名時,要怎麼知道要給哪一張?
伺服器名稱指示 (SNI) 就是為了解決這個問題而設計的。SNI 是 TLS 通訊協定(以前稱為 SSL 通訊協定的延伸,用於 HTTPS。它包含在 TLS/SSL 交握過程中,以確保用戶端裝置能夠看到它們試圖存取的網站的正確 SSL 憑證。該延伸可以在 TLS 交握期間指定網站的主機名稱或網域名稱,而不是在交握後開啟 HTTP 連線時指定。
憑證申請流程
由於貴司申請的是OV 組織型SSL憑證,申請的過程都會利用Akamai的平台上Certificate Provisioning System (CPS)系統完成,整個流程會有以下步驟:
產生CSR(證書簽署請求): Akamai CPS會協助你填妥CSR需要的資訊。
提交申請: 平台將CSR提供給外部合作的憑證授權單位(CA),進行後續流程的申請。
執行組織驗證: CA會對組織的合法存在、電話號碼、域名所有權等進行嚴格的驗證。這邊要透別留意的是,CA組織怎麼知道跟公司內部哪一位同仁確認公司的相關資料呢?
CA組織會透過WHOIS的資料來找域名擁有者!! 因此千萬要注意這個當初申請域名留下的郵件或是電話,現在是否還是可以正常聯繫到人的,也務必通知同仁後續會這樣的確認電話或郵件。
執行域名驗證: 確認您對憑證中包含的域名擁有控制權,通常可透過Email、DNS或檔案方式進行。
憑證核發: 完成所有驗證後,CPS平台會收到一張憑證,後續就可以佈署於環境。
憑證佈署 : 同樣環境也分為Staging與Production Network,所以可以先將憑證佈署到Staging環境後,測試測試驗證無誤再到Production。
CSP的介面會有個選項 (Always test on Staging before deployment),系統會自動佈署到Staging環境去,不用人工點選。
設定過程注意事項 :
Select Network Settings:由於你買的是OV憑證,所以這選項就會是Enhanced TLS。
Advanced Network Configuration :針對TLS的版本,因應資安的要求要記得關閉TLS1.0跟TLS1.1。
Select Cipher Profiles: Cipher Profiles針對強度的選擇,Akamai提供幾種設定檔可供選擇,如果是金融交易或是資安要求強度較高的,就是選目前最新的ak-akamai-2020q1。
這個在目前 Qualys SSL Labs 伺服器測試中會取得「A」評等,而且沒有弱加密協議,應付稽核最好。
但,如果你還有些客戶你還有些客戶可能用非常舊的作業系統如Win XP,那系統上能裝的瀏覽器會停在某個版本無法升級,導致不支援較新的加密協議就會不能連線喔,要先跟客服講好安撫的話術!!
圖檔引用自官方網站 cipher-profiles
APP 憑證驗證
Jerry看著開發單位回填的資料中,對外的服務還有透過APP來提供服務,因此詢問著顧問APP需要更新嗎?
顧問回答,如果貴司的APP因應資安的要求,在進行交易或重要的請求時去驗證連接主機憑證,那麼就必須要CDN憑證放在APP的肚子中。
然後在這個上面,Jerry你會面臨需要跟個開發團隊溝通以下的事情:
初次導入CDN憑證時,必須要考量也許切換的不順利,會再切回去地端服務,原有的地端憑證仍須存在並維持效期。
對於一般使用電腦以瀏覽器的網站服務來說,CPS平台更新憑證時不會影響運作,而且過貴司的開發人員都不用介入。但是APP就不同了,要注意兩件事!!
*透過Apple Store 或是 Google store上架的APP,都會有官方審查期間,待官方審查完後才會開放,因此不要趕在憑證要過期的最後幾天才更新。
*有些服務的設計會要求一定要更新到哪個版本,稱之為強迫更新。次數一旦多,難免有客訴。而目前APP除了CDN憑證外尚有地端憑證,除了時間不一致外,一定也是要強迫更新到最新版本,要先做好事前的溝通跟規劃!!
Jerry抓著頭抱怨到,老天爺啊!!我還要跟開發單位溝通這個,這麼麻煩肯定被電爆阿~~~~
一台破筆電
正當服務陸續的設定跟憑證到位後,Jerry發現到一個問題,手機的流量樣怎麼轉導到Staging環境呢?
顧問說明,由於手機上沒有hosts這樣的方式可以調整,通常就是透過網路架構的調整例如Proxy,手機可以安裝調整DNS解析的APP。
只是你家的APP會檢查憑證,透過Proxy的方式一定會出現異常,因為Proxy主機沒有Akamai憑證,這代表APP的資安機制防護有效!!
然後,調整DNS解析的APP大多要付費,免費的我不知道哪裡有,坦白說這個我經驗不多,幫不上忙!!
Jerry苦惱了好幾天,想到了一個方法,筆電行動熱點分享變成基地台,再透過筆電系統進行DNS Spoofing後,不就可以連到Staging環境了嗎。
於是,Jerry開使跟開發單位同仁協調測試的方式,並陸續完成服務的驗證!!
但在某一次專案進度回報的會議上,開發單位的大主管問到,你就打算用你那台破筆電驗證服務,然後就可以上線了嗎?
Jerry隱忍著想罵人的情緒,先是說明了目前測試環境的限制,以及測試報告上的測試項目都有通過,因此不會有問題!!
會議結束後,Jerry緩和著自己的情緒,回想著剛剛的情境,心裡想著應該沒問題吧。
只是Jerry突然注意到開發人員都拿iPhone,心理想著~~我們家的APP沒有Android版本嗎? 我好像沒看他們有測?
但不知為何,Jerry只是喃喃自語的想著,沒有再去再去追問這件事,於是......