每日一博 | 证书管理:从手工到平台化
作者: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技术的发展,新增了去中心化身份验证和身份管理技术,在证书的分发上具备以下优势:
-
不可篡改性:
区块链技术保证证书的安全性和不可篡改性。因为每一个区块链节点都会对交易进行验证和记录,从而保证数据的一致性和完整性,防止伪造和篡改。
-
透明性:
区块链技术使得所有参与者都可以获得统一的信息,从而保证证书的透明性,避免信息不对称或不公平的情况发生,同时也可以有效地降低信息传递成本。
-
保密性:
区块链技术可以采用加密算法,保证证书的保密性和隐私性。同时,也可以根据需求设定只允许特定的参与者访问相关信息。
-
高效性:
传统的证书分发需要进行大量的人力和物力投入,而基于区块链的证书分发可以实现自动化,从而提高证书分发的效率。
-
可追溯性:
基于区块链的证书分发可以实现对证书的溯源和追踪,从而可以更好地防止证书的丢失或滥用。
综上所述,基于区块链的证书分发可以有效降低证书分发的成本和提高证书的安全性。
未来,基于相关技术的成熟程度,也会合理的应用和替换过往的证书申请分发模式,迭代证书管理平台相关的功能,来配合提高证书的管理效率和安全性。
END
猜你喜欢
本文分享自微信公众号 - vivo互联网技术(vivoVMIC)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Apache Airflow Hive Provider Beeline 远程代码执行漏洞
漏洞描述 Airflow Hive Provider 是Apache Airflow与Apache Hive集成的插件。Beeline 是Hive客户端与服务器进行交互的命令行工具。 Airflow Apache Hive Provider 6.1.1之前版本中由于 hive#_prepare_cli_cmd 方法未对用户参数正确过滤,具有修改 Hive 连接参数权限的攻击者可将包含分号(';')的恶意负载注入到 extra_dejson 参数的 principal 值中,从而在Hive服务器远程执行任意命令。 漏洞名称 Apache Airflow Hive Provider Beeline 远程代码执行漏洞 漏洞类型 代码注入 发现时间 2023-07-02 漏洞影响广度 广 MPS编号 MPS-gyzv-dxst CVE编号 CVE-2023-35797 CNVD编号 - 影响范围 apache-airflow-providers-apache-hive@[1.0.0, 6.1.1) 修复方案 升级apache-airflow-providers-apache-hive到 6.1...
- 下一篇
LogiCommon —— Java 通用功能组件
LogiCommon 是滴滴开源的 Java 版本的认证、鉴权、管理、任务调度通用功能组件和公共模块,包括 Logi-security、Logi-job。 LogiCommon 会尽量保持与具体业务的解耦,以简单易用,轻量高效,尽可能减少用户感知的方式做到多平台适配,同时提供可扩展的接口,让用户自由扩展 LogiCommon 的功能,以满足具体的业务。 Logi-security 主要提供基础功能服务,主要分为认证、鉴权、管理三部分功能。其中认证包括了登录、注册、注销等功能;鉴权包括了确定用户的界面权限、资源权限的功能;管理包括了用户、项目、角色、部门的基本操作的功能和操作日志、消息通知的调控功能; Logi-job 是分布式的定时调度服务 1.logi-security 1.1 介绍 logi-security 提供项目大多都需要基础的一些功能(用户、角色、权限、登录、注册、操作记录),这些功能开发简单但是开发起来又比较繁琐和有一定的工作量(开发、测试、联调、编写接口文档等等),所以打算把这类的功能抽取出来,整合进 Logi-security,让这些项目开发人员更加专注于核心功能,避...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- 2048小游戏-低调大师作品
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- CentOS8编译安装MySQL8.0.19
- CentOS6,CentOS7官方镜像安装Oracle11G
- CentOS7,8上快速安装Gitea,搭建Git服务器
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- MySQL8.0.19开启GTID主从同步CentOS8
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Red5直播服务器,属于Java语言的直播服务器