共计 2201 个字符,预计需要花费 6 分钟才能阅读完成。
作者:vivo 互联网运维团队 - Peng Jiahong
本文介绍了 vivo 业务运维证书治理从手工到平台化的历程。
一、背景
以往,vivo 互联网业务的域名证书运维管理工作,重大依赖经验丰富的高级运维工程师集体专职治理,证书治理存在单点以及过于依赖的人的状况。
随着业务规模的继续扩充,以及对证书治理质量标准的要求晋升,增强全网证书信息精确的收敛把控。
为此,业务运维团队决定,通过证书治理流程标准化、平台化,实现全生命周期治理证书,来打消因依赖人为治理证书问题导致业务可用性受损的痛点。
二、能力布局
全生命周期治理业务证书,咱们建设的平台需具备以下个性和能力:
- 高效的证书申请:
新申请以及续期场景,平台疏导用户主动的生成私钥和 CSR 并提交工作申请联系单,用户实现验证后主动存储证书合并私钥。
- 便捷的证书治理:
反对多种证书格局导入、导出性能,查看残缺的证书信息。
- 平安的私钥存储:
应用 AES256 等 高强度算法加密存储。
- 证书逾期监控:
反对 30/60 天, 可自定义逾期的证书监控告警。
- 证书变更白屏化:
笼罩 NGINX、SLB、CDN 以及 VUA 证书变更场景。
三、设计思路
3.1 技术选型
(1)前端框架:
用基于 Vue2 的 Element 构建根底页面
(2)后端框架:
以 Go 语言为根底,疾速利用 gin 框架提供 restful 的 api,业务数据存储在 MySQL
3.2 架构设计
证书治理平台整体架构设计:
3.3 模块设计
证书治理平台蕴含四个十分重要的子模块:
- 可视:
是整个平台最根底的模块,除根底的权限性能外,通过收敛汇总所以证书信息,实现证书总览数据分析,证书的操作的追溯以及变更审计和操作可视化。
- 治理:
是证书信息管理的外围性能之一,实现证书信息的可视化以及信息变更、证书申请、证书续期的能力。
- 变更:
提供 NGINX、SLB、CDN、VUA 证书的推送能力。
- 监控:
提供证书的生命周期检测、有效期揭示、线上证书扫描的能力。
四、技术实现
4.1 前端
前端是基于 Vue2 和 Element 来组建用户的操作界面,整个具体的设计图如下:
其中:
- main.j 蕴含整个业务零碎落地所须要的各类组件和元素,实现组件 的提供以及根底的权限校验;
- api 的办法通过正当的封装后端的接口,提供 view 中出现给用户的界面调用办法,来实现整个证书治理的业务流程操作。
在整个证书治理平台的迭代过程中,只需重点关注 view 中 vcm 前缀用户界面的代码实现即可。
4.2 后端
后端应用 Go 语言来编写业务逻辑和 API 接口。其中架构能够参考 3.2 设计图,治理平台外围逻辑通过代码片段展现如下:
(1)基于 casbin 实现的权限治理:通过角色管制权限,并按需赋予用户角色默认拜访权限(如下图创立角色时 AddMenuAuthority、UpdateCasbin 办法)。
(2)证书相干数据加密解决:获取前端用户抉择的相干算法进行加密。
(3)基于证书治理标准化流程的业务代码实现,笼罩证书的信息管理 & 变更推送 & 监控告警 & 平台的角色权限管制。
五、平台预览
通过多个开发迭代,平台相干的外围性能如下:
5.1 证书信息概览
概览首页收敛证书治理的性能入口,以及收纳治理证书的全貌,不便管理员理解所治理的证书状态和最近的申请进度。
5.2 证书信息管理
汇总了目前外销所有证书信息,后续平台上申请的证书信息管理也会收敛于此,并提供证书私钥相干的查看和下载。
5.3 证书申请 / 续期
通过平台场景化证书申请续期的操作,解决过往碎片化操作以及无教训人员需通过文档浏览或者人员领导实现证书申请问题。
5.4 证书变更治理
平台笼罩云上、NGINX 集群、CDN 以及 VUA 的证书白屏化、可追溯操作历史更新能力。
5.5 证书监控
收敛在平台上治理的证书都会有逾期监控揭示,来揭示运维人员及时实现对应的证书更新治理,确保业务不受影响。
六、总结
证书治理平台的实际落地,通过流程标准化以及治理平台的建设,标准证书的信息、变更、告警、变更审计相干治理,上线后至今,也无证书治理相干的问题导致的可用性告警,解决了传统域名证书治理场景下人效、可用性隐患的痛点,是业务运维 SRE 可用性保障 & 运维提效的一个胜利案例。
七、瞻望
目前咱们获取的证书,仍旧依赖于传统的域名证书散发模式 (站点管理员须要破费金钱购买数字证书,并且证书的签发和更新须要工夫和人力老本)。随着区块链和 Web 3.0 技术的倒退,新增了去中心化身份验证和身份治理技术,在证书的散发上具备以下 劣势:
- 不可篡改性:
区块链技术保障证书的安全性和不可篡改性。因为每一个区块链节点都会对交易进行验证和记录,从而保证数据的一致性和完整性,避免伪造和篡改。
- 透明性:
区块链技术使得所有参与者都能够取得对立的信息,从而保障证书的透明性,防止信息不对称或不偏心的状况产生,同时也能够无效地升高信息传递老本。
- 保密性:
区块链技术能够采纳加密算法,保障证书的保密性和隐衷性。同时,也能够依据需要设定只容许特定的参与者拜访相干信息。
- 高效性:
传统的证书散发须要进行大量的人力和物力投入,而基于区块链的证书散发能够实现自动化,从而进步证书散发的效率。
- 可追溯性:
基于区块链的证书散发能够实现对证书的溯源和追踪,从而能够更好地避免证书的失落或滥用。
综上所述,基于区块链的证书散发能够无效升高证书散发的老本和进步证书的安全性。
将来,基于相干技术的成熟水平,也会正当的利用和替换过往的证书申请散发模式,迭代证书治理平台相干的性能,来配合进步证书的管理效率和安全性。