证书管理:从手工到平台化

证书,管理,手工,平台 · 浏览次数 : 323

小编点评

**vivo 互联网运维团队的证书管理从手工到平台化的历程** **背景** *vivo 互联网业务的域名证书运维管理工作严重依赖经验丰富的高级运维工程师个人专职管理证书。 *随着业务规模的持续扩大以及对证书管理质量标准的要求提升,加强全网证书信息准确的收敛把控。 **能力规划全生命周期管理业务证书** *构建平台需具备高效的证书申请功能、便捷的证书管理、安全的私钥存储、证书逾期监控、证书变更白屏化等能力。 **设计思路** * 3.1 技术选型(1)前端框架:Element 用于构建用户界面。 * 3.2 架构设计:证书管理平台包含可视、管理、变更、监控四个核心模块。 * 3.3 模块设计: * 可视:证书信息概览、证书申请管理、变更管理、监控管理 * 管理:证书信息管理、证书申请、证书续期 * 变更:NGINX、SLB、CDN 证书推送 * 监控:证书生命周期检测、有效期提醒、线上证书扫描 **技术实现** * 4.1 前端前端使用 Vue2 和 Element 来组建用户操作界面。 * 4.2 后端使用 Go 语言编写业务逻辑和 API 接口。 **平台预览** * 5.1 证书信息概览:收敛证书管理功能入口,展示证书状态和申请进度。 * 5.2 证书信息汇总:内销所有证书信息,支持后续平台申请的整合。 * 5.3 证书申请/续期场景化:简化证书申请和续期的操作。 * 5.4 证书变更管理平台:覆盖云上、NGINX 集群、CDN 以及 VUA 的证书白屏化、可追溯操作历史更新。 * 5.5 证书监控收敛:在线监控证书的生命周期并提醒运维人员。 **总结** * 基于区块链的证书分发可以有效降低证书分发的成本和提高证书的安全性。 * 未来,基于相关技术的成熟程度,也会合理的应用和替换过往的证书申请分发模式,迭代证书管理平台相关的功能,来配合提高证书的管理效率和安全性。

正文

作者: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技术的发展,新增了去中心化身份验证和身份管理技术,在证书的分发上具备以下优势

  1. 不可篡改性

区块链技术保证证书的安全性和不可篡改性。因为每一个区块链节点都会对交易进行验证和记录,从而保证数据的一致性和完整性,防止伪造和篡改。

  1. 透明性

区块链技术使得所有参与者都可以获得统一的信息,从而保证证书的透明性,避免信息不对称或不公平的情况发生,同时也可以有效地降低信息传递成本。

  1. 保密性

区块链技术可以采用加密算法,保证证书的保密性和隐私性。同时,也可以根据需求设定只允许特定的参与者访问相关信息。

  1. 高效性

传统的证书分发需要进行大量的人力和物力投入,而基于区块链的证书分发可以实现自动化,从而提高证书分发的效率。

  1. 可追溯性

基于区块链的证书分发可以实现对证书的溯源和追踪,从而可以更好地防止证书的丢失或滥用。

 

综上所述,基于区块链的证书分发可以有效降低证书分发的成本和提高证书的安全性。

未来,基于相关技术的成熟程度,也会合理的应用和替换过往的证书申请分发模式,迭代证书管理平台相关的功能,来配合提高证书的管理效率和安全性。

与证书管理:从手工到平台化相似的内容:

证书管理:从手工到平台化

本文介绍了vivo业务运维证书管理从手工到平台化的历程。

FreeSSL申请免费证书

FreeSSL申请免费证书 FreeSSL 是一个免费证书和 SSL 证书管理平台。旨在为个人和小型企业提供免费 SSL 证书,以加强他们的网站和应用程序的安全性。与传统的 SSL 证书颁发机构不同,FreeSSL 使用自动化过程生成 SSL 证书,并提供一个管理面板,让用户可以轻松管理他们的证书和

[转帖]vCenter使用 VMCA 续订证书:续订证书时发生意外错误

https://www.dinghui.org/vcenter-sts-certificate.html 起因:有一处客户vCenter告警:STS签名证书即将过期。 处理办法:系统管理-证书-证书管理,选择STS证书,操作,使用vCenter证书刷新; 强制刷新,即可。 提示重启,重启后,STS证

[转帖]Jmeter 压测中配置https证书

本文章 主要介绍证书的获取、处理、配置到jmeter中。 1. 获取证书 首先:谷歌浏览器 打开网站,点击 地址栏的锁(表示https),选择 “证书” “隐私、搜索和服务” “管理证书” 点击 上图中的“管理证书”后,打开如下窗口: 在中间的证书列表中找到需要导出的证书,点击“导出”按钮。 在新打

使用itextPDF实现PDF电子公章工具类

使用itextPDF实现PDF电子公章工具类 一、制作公章 在线网站:印章生成器 - Kalvin在线工具 (kalvinbg.cn) 然后对公章进行下载保存 盖章图片: 二、生成数字签名 2.1: java工具keytool生成p12数字证书文件 Keytool是用于管理和证书的工具,位于%JAV

【Azure API 管理】APIM中证书更新问题

问题描述 每一年到期更新域名证书,APIM会中断服务,请问如何不中断服务? 问题解答 Azure API 管理允许在受信任的根证书和中间证书存储中的计算机上安装 CA 证书,分配证书的过程可能需要 15 分钟或更久,这取决于部署规模。 开发人员 SKU 在此过程中有停机时间。 基本 SKU 和更高级

vCenter 宕机后证书续期处理

# vCenter 宕机后证书续期处理 ## 背景 ``` 最近护网, 我司被选中作为防守方 因为发现一个vCenter控制台出现异常访问, 被管理员强行断网. 因为是周六的事情,当时自己也没太在意,想着工作日添加网络就可以了. 但是周天遇到了紧急事项,要求必须尽快处理好. 但是再开放部分网络之后,

[转帖]jmeter SSL证书相关配置

在实际工作中,我们大多数接口都是用的HTTPS来保证安全,使用jmeter测试HTTPS请求是如何配置证书呢? 1.最简单的方法,在选项里选择SSL管理器,然后选择相应的证书即可 在弹出的选择框选择证书即可,亲测可以使用.p12证书,因为我们公司用的是p12类型证书,当发起HTTPS请求时,如果设置

加速博客体验:静态资源优化技巧大揭秘!

在博客写作中,静态资源加速方式是解决图片加载速度的关键。通过图片压缩、Nginx静态资源缓存和EdgeOne等CDN产品的应用,我们提高了网站性能和用户体验,减轻了服务器带宽压力。EdgeOne的功能包括静态加速、网站证书和HTTP重定向至HTTPS,简化了网站管理流程,提升了安全性。合理利用这些静...

数组降维与多级指针、函数栈帧、地址空间、可变参数原理

目录数组和指针多维数组的物理结构证明数组a和&a不同数组与指针的差别之一什么时候数组名表示整个数组?数组训练理解指针与数组的题所有的数组,都可以看成一维数组.所有的数组传参,最终都会降维成一维数组函数函数的地址函数的规范内存管理malloc返回给用户的只有申请内存的起始地址,那free是如何准确释放