作者:vivo 網際網路運維團隊- Peng Jiahong
本文介紹了vivo業務運維證書管理從手工到平臺化的歷程。
以往,vivo 網際網路業務的域名證書運維管理工作,嚴重依賴經驗豐富的高階運維工程師個人專職管理,證書管理存在單點以及過於依賴的人的情況。
隨著業務規模的持續擴大,以及對證書管理質量標準的要求提升,加強全網證書資訊準確的收斂把控。
為此,業務運維團隊決定,通過證書管理流程標準化、平臺化,完成全生命週期管理證書,來消除因依賴人為管理證書問題導致業務可用性受損的痛點。
全生命週期管理業務證書,我們建設的平臺需具備以下特性和能力:
高效的證書申請:
新申請以及續期場景,平臺引導使用者自動的生成私鑰和 CSR 並提交工作申請聯絡單,使用者完成驗證後自動儲存證書合併私鑰。
便捷的證書管理:
支援多種證書格式匯入、匯出功能,檢視完整的證書資訊。
安全的私鑰儲存:
使用 AES256 等 高強度演演算法加密儲存。
證書逾期監控:
支援 30/60 天,可自定義逾期的證書監控告警。
證書變更白屏化:
覆蓋 NGINX、 SLB、CDN 以及 VUA 證書變更場景。
(1)前端框架:
用基於Vue2的Element構建基礎頁面
(2)後端框架:
以 Go 語言為基礎,快速利用gin框架提供restful的api,業務資料儲存在MySQL
證書管理平臺整體架構設計:
證書管理平臺包含四個非常重要的子模組:
可視:
是整個平臺最基礎的模組,除基礎的許可權功能外,通過收斂彙總所以證書資訊,實現證書總覽資料分析,證書的操作的追溯以及變更審計和操作視覺化。
管理:
是證書資訊管理的核心功能之一,實現證書資訊的視覺化以及資訊變更、證書申請、證書續期的能力。
變更:
提供 NGINX、SLB、CDN、VUA 證書的推播能力。
監控:
提供證書的生命週期檢測、有效期提醒、線上證書掃描的能力。
前端是基於Vue2和Element來組建使用者的操作介面,整個詳細的設計圖如下:
其中:
main.j包含整個業務系統落地所需要的各類元件和元素,實現元件 的提供以及基礎的許可權校驗;
api的方法通過合理的封裝後端的介面,提供view中呈現給使用者的介面呼叫方法,來實現整個證書管理的業務流程操作。
在整個證書管理平臺的迭代過程中,只需重點關注view中vcm字首使用者介面的程式碼實現即可。
後端使用Go語言來編寫業務邏輯和API介面。其中架構可以參考3.2設計圖,管理平臺核心邏輯通過程式碼片段展示如下:
(1)基於casbin實現的許可權管理:通過角色控制許可權,並按需賦予使用者角色預設存取許可權(如下圖建立角色時AddMenuAuthority、UpdateCasbin方法)。
(2)證書相關資料加密處理:獲取前端使用者選擇的相關演演算法進行加密。
(3)基於證書管理標準化流程的業務程式碼實現,覆蓋證書的資訊管理&變更推播&監控告警&平臺的角色許可權控制。
經過多個開發迭代,平臺相關的核心功能如下:
概覽首頁收斂證書管理的功能入口,以及收納管理證書的全貌,方便管理員瞭解所管理的證書狀態和最近的申請進度。
彙總了目前內銷所有證書資訊,後續平臺上申請的證書資訊管理也會收斂於此,並提供證書私鑰相關的檢視和下載。
通過平臺場景化證書申請續期的操作,解決過往碎片化操作以及無經驗人員需通過檔案閱讀或者人員指導完成證書申請問題。
平臺覆蓋雲上、NGINX 叢集、CDN 以及 VUA 的證書白屏化、可追溯操作歷史更新能力。
收斂在平臺上管理的證書都會有逾期監控提醒,來提醒運維人員及時完成對應的證書更新管理,確保業務不受影響。
證書管理平臺的實踐落地,通過流程標準化以及管理平臺的建立,規範證書的資訊、變更、告警、變更審計相關管理,上線後至今,也無證書管理相關的問題導致的可用性告警,解決了傳統域名證書管理場景下人效、可用性隱患的痛點,是業務運維 SRE 可用性保障&運維提效的一個成功案例。
目前我們獲取的證書,依舊依賴於傳統的域名證書分發模式(站點管理員需要花費金錢購買數位憑證,並且證書的簽發和更新需要時間和人力成本)。隨著區塊鏈和Web 3.0技術的發展,新增了去中心化身份驗證和身份管理技術,在證書的分發上具備以下優勢:
不可篡改性:
區塊鏈技術保證證書的安全性和不可篡改性。因為每一個區塊鏈節點都會對交易進行驗證和記錄,從而保證資料的一致性和完整性,防止偽造和篡改。
透明性:
區塊鏈技術使得所有參與者都可以獲得統一的資訊,從而保證證書的透明性,避免資訊不對稱或不公平的情況發生,同時也可以有效地降低資訊傳遞成本。
保密性:
區塊鏈技術可以採用加密演演算法,保證證書的保密性和隱私性。同時,也可以根據需求設定只允許特定的參與者存取相關資訊。
高效性:
傳統的證書分發需要進行大量的人力和物力投入,而基於區塊鏈的證書分發可以實現自動化,從而提高證書分發的效率。
可追溯性:
基於區塊鏈的證書分發可以實現對證書的溯源和追蹤,從而可以更好地防止證書的丟失或濫用。
綜上所述,基於區塊鏈的證書分發可以有效降低證書分發的成本和提高證書的安全性。
未來,基於相關技術的成熟程度,也會合理的應用和替換過往的證書申請分發模式,迭代證書管理平臺相關的功能,來配合提高證書的管理效率和安全性。