掌桥专利:专业的专利平台
掌桥专利
首页

基于LICENSE系统的应用证书管理方法、装置、设备及存储介质

文献发布时间:2023-06-19 19:20:08


基于LICENSE系统的应用证书管理方法、装置、设备及存储介质

技术领域

本申请涉及软件认证技术领域,尤其涉及一种基于LICENSE系统的应用证书管理方法、装置、计算机设备及存储介质。

背景技术

随着公司系统业务的不断丰富扩展,配置集数量日趋增加。多开发者协同面临因配置集参数不确定等各个问题的挑战,导致协同开发效率较为低下。因此快捷便利高效的管理配置集已成为迫切需求。

在现有技术中,通过一套License分发证书系统,可实现对各个公司环境(开发、私有部署、预发布、生产)并与实际的业务需求相结合对证书的生成、分发与其证书配置集的一体化管理分发流程,极大提升了管理效率,将效率利用呈现出其指数倍增长的趋势。

然而,申请人发现现有的License分发证书系统存在无可规避的弊端,客户无法自主获取证书来激活应用产品。无法做到客户灵活自主的来对其证书的获取。进而使其对应用产品的使用激活流程操作较为繁琐,由此可见,现有的License分发证书系统存在激活操作过于繁琐、效率过低的问题。

发明内容

本申请实施例的目的在于提出一种基于LICENSE系统的应用证书管理方法、装置、计算机设备及存储介质,以解决现有的License分发证书系统存在激活操作过于繁琐、效率过低的问题。

为了解决上述技术问题,本申请实施例提供一种基于LICENSE系统的应用证书管理方法,采用了如下所述的技术方案:

接收用户终端发送的应用购买信息,其中,所述应用购买信息包括目标应用标识、应用Scale值以及第一环境机器码信息;

获取与所述第一环境机器码信息相对应的第一终端集群的第一根证书;

获取实例配置集,并将所述应用Scale值写入所述实例配置集中,得到目标实例配置集;

根据所述第一根证书以及所述目标实例配置集创建实例证书;

获取与所述目标应用标识相对应的应用配置集,并根据所述实例证书以及所述应用配置集创建应用证书;

将所述应用证书分发至所述用户终端,以便根据所述应用证书进行自助下载以及部署操作。

进一步的,接收用户终端发送的应用购买信息的步骤之后,还包括下述步骤:

调用kafka流处理平台,并根据所述kafka流处理平台接收并存储所述用户终端发送的所述应用购买信息;

从所述kafka流处理平台中获取所述应用购买信息。

进一步的,在所述将所述应用证书发送至所述用户终端的步骤之后,还包括下述步骤:

将所述应用证书分发至第二环境机器码信息相对应的第二终端集群,其中,所述第二终端集群的第二根证书与所述应用证书相匹配。

进一步的,所述根据所述第一根证书以及所述目标实例配置集创建实例证书的步骤,具体包括下述步骤:

计算所述第一根证书的完整性校验信息;

生成与所述第一终端集群对应的、携带所述完整性校验信息的所述实例证书;

在所述将所述应用证书分发至第二环境机器码信息相对应的终端集群的步骤之后,还包括下述步骤:

判断所述第二终端集群的第二根证书与所述应用证书中携带的所述完整性校验信息是否相匹配;

若所述第二根证书与所述完整性校验信息匹配,则将所述第二终端集群识别为所述第一终端集群;

若所述第二根证书与所述完整性校验信息不匹配,则不将所述第二终端集群识别为所述第一终端集群。

进一步的,所述计算所述第一根证书的完整性校验信息的步骤,具体包括下述步骤:

将所述应用Scale值作为盐值与所述第一根证书组合,计算所述第一根证书的第一含盐完整性校验信息;

所述判断所述第二终端集群的第二根证书与所述应用证书中携带的所述完整性校验信息是否相匹配的步骤,具体包括:

将所述应用Scale值作为盐值与所述第二根证书组合后生成的第二含盐完整性校验信息;

判断所述第二含盐完整性校验信息与所述第一含盐完整性校验信息是否相匹配。

进一步的,所述将所述应用证书分发至第二环境机器码信息相对应的第二终端集群的步骤,具体包括下述步骤:

生成包含所述应用证书以及所述目标应用标识的执行代码的可部署镜像,并将所述可部署镜像分发至第二终端集群进行部署。

为了解决上述技术问题,本申请实施例还提供一种基于LICENSE系统的应用证书管理装置,采用了如下所述的技术方案:

信息接收模块,用于接收用户终端发送的应用购买信息,其中,所述应用购买信息包括目标应用标识、应用Scale值以及第一环境机器码信息;

第一根证书获取模块,用于获取与所述第一环境机器码信息相对应的第一终端集群的第一根证书;

Scale值写入模块,用于获取实例配置集,并将所述应用Scale值写入所述实例配置集中,得到目标实例配置集;

实例证书创建模块,用于根据所述第一根证书以及所述目标实例配置集创建实例证书;

应用证书创建模块,用于获取与所述目标应用标识相对应的应用配置集,并根据所述实例证书以及所述应用配置集创建应用证书;

第一分发模块,用于将所述应用证书分发至所述用户终端,以便根据所述应用证书进行自助下载以及部署操作。

进一步的,所述信息接收模块包括:

流处理子模块,用于调用kafka流处理平台,并根据所述kafka流处理平台接收并存储所述用户终端发送的所述应用购买信息;

信息接收子模块,用于从所述kafka流处理平台中获取所述应用购买信息。

为了解决上述技术问题,本申请实施例还提供一种计算机设备,采用了如下所述的技术方案:

包括存储器和处理器,所述存储器中存储有计算机可读指令,所述处理器执行所述计算机可读指令时实现如上所述的基于LICENSE系统的应用证书管理方法的步骤。

为了解决上述技术问题,本申请实施例还提供一种计算机可读存储介质,采用了如下所述的技术方案:

所述计算机可读存储介质上存储有计算机可读指令,所述计算机可读指令被处理器执行时实现如上所述的基于LICENSE系统的应用证书管理方法的步骤。

本申请提供了一种基于LICENSE系统的应用证书管理方法,包括:接收用户终端发送的应用购买信息,其中,所述应用购买信息包括目标应用标识、应用Scale值以及第一环境机器码信息;获取与所述第一环境机器码信息相对应的第一终端集群的第一根证书;获取实例配置集,并将所述应用Scale值写入所述实例配置集中,得到目标实例配置集;根据所述第一根证书以及所述目标实例配置集创建实例证书;获取与所述目标应用标识相对应的应用配置集,并根据所述实例证书以及所述应用配置集创建应用证书;将所述应用证书分发至所述用户终端,以便根据所述应用证书进行自助下载以及部署操作。与现有技术相比,本申请将License分发平台与其证书生成分发业务解耦,合理化业务逻辑或者是其代码实现等层面,大大提升了后续系统扩展能力;同时,内部/外部更加灵活获取证书。无论是开发人员与客户使用人员,都可随时灵活的获取证书,提升了开发效率与其使用系统的便捷能力;证书配置集与代码仓库分离。证书配置过于冗余,分离出后较为维护,降低了其维护成本,利于维护。

附图说明

为了更清楚地说明本申请中的方案,下面将对本申请实施例描述中所需要使用的附图作一个简单介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本申请可以应用于其中的示例性系统架构图;

图2是本申请实施例一提供的基于LICENSE系统的应用证书管理方法的实现流程图;

图3是图2中步骤S201之后的一种具体实施方式的流程图;

图4是图2中步骤S206之后的一种具体实施方式的流程图;

图5是图4中步骤S204以及图4中步骤S401之后的一种具体实施方式的流程图;

图6是图5中步骤S501以及步骤S503的一种具体实施方式的流程图;

图7是图4中步骤S401的一种具体实施方式的流程图;

图8是本申请实施例二提供的基于LICENSE系统的应用证书管理装置的结构示意图;

图9是图8中信息接收子模块210的一种具体实施方式的结构示意图;

图10是根据本申请的计算机设备的一个实施例的结构示意图。

具体实施方式

除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同;本文中在申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请;本申请的说明书和权利要求书及上述附图说明中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。本申请的说明书和权利要求书或上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。

在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。

为了使本技术领域的人员更好地理解本申请方案,下面将结合附图,对本申请实施例中的技术方案进行清楚、完整地描述。

如图1所示,系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。

用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如网页浏览器应用、购物类应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。

终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、电子书阅读器、MP3播放器(Moving Picture ExpertsGroup Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving PictureExperts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、膝上型便携计算机和台式计算机等等。

服务器105可以是提供各种服务的服务器,例如对终端设备101、102、103上显示的页面提供支持的后台服务器。

需要说明的是,本申请实施例所提供的基于LICENSE系统的应用证书管理方法一般由服务器/终端设备执行,相应地,基于LICENSE系统的应用证书管理装置一般设置于服务器/终端设备中。

应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。

实施例一

继续参考图2,示出了本申请实施例一提供的基于LICENSE系统的应用证书管理方法的实现流程图,为了便于说明,仅示出与本申请相关的部分。

上述的基于LICENSE系统的应用证书管理方法,包括:步骤S201、步骤S202、步骤S203、步骤S204、步骤S205以及步骤S206。

在步骤S201中,接收用户终端发送的应用购买信息,其中,应用购买信息包括目标应用标识、应用Scale值以及第一环境机器码信息。

在本申请实施例中,License分发平台系统,会将所有的环境以及证书权限进行集中收拢,具体细化到个人层面,且向外暴露出相应接口并与应用官网相互联结。用户在其应用官网购买对应产品后,通过其相应操作文档可一键生成证书,实现了用户对其应用产品部署、激活以及使用一体化流程的自动执行。平台还利用唯一标识(用户当前机器的机器码)。用户将本机机器码与证书进行绑定,杜绝了相互之间拷贝证书等不安全危险行为,真正做到了证书分发的绝对安全。该证书分发平台系统也可使购买平台和激活证书的操作流程在代码实现层面进行充分解耦,平台无需对其证书的颁发逻辑与即将过期通知客户更换证书等用户行为进行直接干预。

在本申请实施例中,用户在应用平台购买产品之后,会将购买信息发送至License分发平台系统,License分发平台系统存储购买信息以及环境机器码。

在步骤S202中,获取与第一环境机器码信息相对应的第一终端集群的第一根证书。

在本申请实施例中,终端集群,可以指任意包含多台计算机设备的计算机集群,亦可以进一步简称为集群;通常,终端集群中的多台计算机设备可以由统一的软件进行调度,而用于调度的软件的名称也常被代指集群;例如,Kubernetes是业内一种容器编排引擎,又称K8s,它可以被部署在终端集群上,并将终端集群中的计算机作为节点进行调度,在这种情况下,部署有Kubernetes的集群也可以被称为Kubernetes集群。

在本申请实施例中,根证书,可以指上述终端集群用于认证身份的自签名根证书;举例而言,对于Kubernetes集群而言,通常需要PKI(Public Key Infrastructure,公开密钥基础设施)证书才能进行基于TLS(Transport Layer Security,传输层安全协议)的身份验证,因此,Kubernetes的集群会统一配置用于认证集群本身的根证书CA.crt。可以理解的,在除Kubernetes以外的其他的终端集群中,根证书的文件名、存储目录可能不同,根证书的具体内容也可能存在差异,但由于根证书本身用于认证的功能特质并未发生变化,因此本领域技术人员可以根据本说明书的公开内容,完成对应的迁移应用和扩展。

在本申请实施例中,通过获取与第一环境机器码信息相对应的第一终端集群的第一根证书,使得被购买的产品只能由与第一环境机器码信息相对应的第一终端集群进行部署,有效防止客户把证书外漏或二次售卖。

在步骤S203中,获取实例配置集,并将应用Scale值写入实例配置集中,得到目标实例配置集。

在本申请实施例中,通过客户的购买产品的Scale写入证书,从而来限制客户通过修改数据库来实现更改Scale的值,代码中会通过对比数据库与证书中购买的Scale的值,如有差距,以证书的为准。

在步骤S204中,根据第一根证书以及目标实例配置集创建实例证书。

在步骤S205中,获取与目标应用标识相对应的应用配置集,并根据实例证书以及应用配置集创建应用证书。

在本申请实施例中,证书分为实例证书(二级证书)和应用证书(三级证书),其中实例证书为应用根证书签发,根证书为OpenSSL的自签名证书,采用的是AES加密算法。应用证书由实例证书签发,皆采用PEM编码的X.509证书标准。

在步骤S206中,将应用证书分发至用户终端,以便根据应用证书进行自助下载以及部署操作。

在本申请实施例中,证书生成分发业务主要由证书管理服务器进行统一签发管理,从而实现与License分发平台系统的解耦。

在本申请实施例中,采用证书链的方式签发,从一定程度上也起到了一定防盗版的作用,把配置集以及购买信息打入证书之中,客户无法通过修改证书来篡改环境信息。

本实施例的一些可选的实现方式中,可以对证书颁发进行分类归档,所有颁发记录全部存入Mysql数据库以及Redis,为后续查询做好准备。存入redis缓存可以做到查询百万数据仅为1秒,大大提高了查询效率。

在本申请实施例中,证书分发平台成功创建证书后,通过邮件给客户发送提示信息,客户可来应用平台进行自助下载。

在本申请实施例中,提供了一种基于LICENSE系统的应用证书管理方法,包括:接收用户终端发送的应用购买信息,其中,应用购买信息包括目标应用标识、应用Scale值以及第一环境机器码信息;获取与第一环境机器码信息相对应的第一终端集群的第一根证书;获取实例配置集,并将应用Scale值写入实例配置集中,得到目标实例配置集;根据第一根证书以及目标实例配置集创建实例证书;获取与目标应用标识相对应的应用配置集,并根据实例证书以及应用配置集创建应用证书;将应用证书分发至用户终端,以便根据应用证书进行自助下载以及部署操作。与现有技术相比,本申请将License分发平台与其证书生成分发业务解耦,合理化业务逻辑或者是其代码实现等层面,大大提升了后续系统扩展能力;同时,内部/外部更加灵活获取证书。无论是开发人员与客户使用人员,都可随时灵活的获取证书,提升了开发效率与其使用系统的便捷能力;证书配置集与代码仓库分离。证书配置过于冗余,分离出后较为维护,降低了其维护成本,利于维护。

继续参阅图3,示出了图2中步骤S201之后的一种具体实施方式的流程图,为了便于说明,仅示出与本申请相关的部分。

在本实施例的一些可选的实现方式中,在步骤S201之后,还包括:步骤S301以及步骤S302。

在步骤S301中,调用kafka流处理平台,并根据kafka流处理平台接收并存储用户终端发送的应用购买信息;

在步骤S302中,从kafka流处理平台中获取应用购买信息。

在本申请实施例中,通过kafka传输可以起到数据不丢失的作用,将购买信息以及客户环境机器码信息通过kafka传输,既可起到两平台解耦的作用,也能保证License分发平台在奔溃的情况下保证数据不丢失。在高并发情况下,还能起到削峰填谷的作用,缓冲应用平台对发放平台的冲击,从而提高平台的健壮性。

本实施例的一些可选的实现方式中,上述kafka可以进行集群部署,搭建高可用环境,从而进一步保证数据的安全性。

继续参阅图4,示出了图2中步骤S206之后的一种具体实施方式的流程图,为了便于说明,仅示出与本申请相关的部分。

在本实施例的一些可选的实现方式中,在步骤S206之后,还包括:步骤S401。

在步骤S401中,将应用证书分发至第二环境机器码信息相对应的第二终端集群,其中,第二终端集群的第二根证书与应用证书相匹配。

在本申请实施例中,当需要在第二终端集群中增设上述已购买应用的运行权限,可以预先匹配第二终端集群的第二根证书与应用证书,并将应用证书分发至第二环境机器码信息相对应的第二终端集群,以便后续进行权限验证是将第二终端集群识别为第一终端集群,从而保证了云应用仅在被许可的客户的设备上运行的前提下,增加具备运行权限的终端集群。继续参阅图5,示出了图4中步骤S204以及图4中步骤S401之后的一种具体实施方式的流程图,为了便于说明,仅示出与本申请相关的部分。

在本实施例的一些可选的实现方式中,步骤S204具体包括:步骤S501以及步骤S502,在步骤S401之后,还包括:步骤S503、步骤S504以及步骤S505。

在步骤S501中,计算第一根证书的完整性校验信息;

在步骤S502中,生成与第一终端集群对应的、携带完整性校验信息的实例证书;

在步骤S503中,判断第二终端集群的第二根证书与应用证书中携带的完整性校验信息是否相匹配;

在步骤S504中,若第二根证书与完整性校验信息匹配,则将第二终端集群识别为第一终端集群;

在步骤S505中,若第二根证书与完整性校验信息不匹配,则不将第二终端集群识别为第一终端集群。

在本申请实施例中,完整性校验信息可以是加盐的完整性校验信息;具体而言,上述应用证书不仅可以与终端集群形成对应关系,还可以与目标应用形成对应关系;例如,可以使不同的目标应用在同一台终端集群上使用不同的应用证书,从而进一步满足开发者和经销商对于精细化关系的需求。

继续参阅图6,示出了图5中步骤S501以及步骤S503的一种具体实施方式的流程图,为了便于说明,仅示出与本申请相关的部分。

在本实施例的一些可选的实现方式中,步骤S501具体包括:步骤S601;步骤S501具体包括:步骤S602以及步骤S603。

在步骤S601中,将应用Scale值作为盐值与第一根证书组合,计算第一根证书的第一含盐完整性校验信息。

在步骤S602中,将应用Scale值作为盐值与第二根证书组合后生成的第二含盐完整性校验信息。

在步骤S603中,判断第二含盐完整性校验信息与第一含盐完整性校验信息是否相匹配。

在本申请实施例中,可以将上述目标应用的应用Scale值作为盐值与上述第一终端集群的第一根证书组合,计算上述第一终端集群的第一根证书的第一含盐完整性校验信息;相对应的,上述第二终端集群被识别为第一终端集群的条件,可以设置为:将上述目标应用的应用Scale值作为盐值与上述第二终端集群的第二根证书组合后生成的第二含盐完整性校验信息,与上述应用证书中携带的上述第一终端集群的根证书的第一含盐完整性校验信息相匹配。

继续参阅图7,示出了图4中步骤S401的一种具体实施方式的流程图,为了便于说明,仅示出与本申请相关的部分。

在本实施例的一些可选的实现方式中,步骤S401包括:步骤S701。

在步骤S701中,生成包含应用证书以及目标应用标识的执行代码的可部署镜像,并将可部署镜像分发至第二终端集群进行部署。

在本申请实施例中,将上述应用证书与应用的执行代码绑定并分发至第二终端集群进行部署,的具体方式,可以通过镜像部署完整;具体而言,可以首先生成包含上述应用证书和上述执行代码的可部署镜像,再将上述可部署镜像分发至第二终端集群进行部署。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机可读指令来指令相关的硬件来完成,该计算机可读指令可存储于一计算机可读取存储介质中,该计算机可读指令在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)等非易失性存储介质,或随机存储记忆体(Random Access Memory,RAM)等。

应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

实施例二

进一步参考图8,作为对上述图2所示方法的实现,本申请提供了一种基于LICENSE系统的应用证书管理装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。

如图8所示,本实施例的基于LICENSE系统的应用证书管理装置200包括:信息接收模块210、第一根证书获取模块220、Scale值写入模块230、实例证书创建模块240、应用证书创建模块250以及第一分发模块260。其中:

信息接收模块210,用于接收用户终端发送的应用购买信息,其中,应用购买信息包括目标应用标识、应用Scale值以及第一环境机器码信息;

第一根证书获取模块220,用于获取与第一环境机器码信息相对应的第一终端集群的第一根证书;

Scale值写入模块230,用于获取实例配置集,并将应用Scale值写入实例配置集中,得到目标实例配置集;

实例证书创建模块240,用于根据第一根证书以及目标实例配置集创建实例证书;

应用证书创建模块250,用于获取与目标应用标识相对应的应用配置集,并根据实例证书以及应用配置集创建应用证书;

第一分发模块260,用于将应用证书分发至用户终端,以便根据应用证书进行自助下载以及部署操作。

在本申请实施例中,License分发平台系统,会将所有的环境以及证书权限进行集中收拢,具体细化到个人层面,且向外暴露出相应接口并与应用官网相互联结。用户在其应用官网购买对应产品后,通过其相应操作文档可一键生成证书,实现了用户对其应用产品部署、激活以及使用一体化流程的自动执行。平台还利用唯一标识(用户当前机器的机器码)。用户将本机机器码与证书进行绑定,杜绝了相互之间拷贝证书等不安全危险行为,真正做到了证书分发的绝对安全。该证书分发平台系统也可使购买平台和激活证书的操作流程在代码实现层面进行充分解耦,平台无需对其证书的颁发逻辑与即将过期通知客户更换证书等用户行为进行直接干预。

在本申请实施例中,用户在应用平台购买产品之后,会将购买信息发送至License分发平台系统,License分发平台系统存储购买信息以及环境机器码。

在本申请实施例中,终端集群,可以指任意包含多台计算机设备的计算机集群,亦可以进一步简称为集群;通常,终端集群中的多台计算机设备可以由统一的软件进行调度,而用于调度的软件的名称也常被代指集群;例如,Kubernetes是业内一种容器编排引擎,又称K8s,它可以被部署在终端集群上,并将终端集群中的计算机作为节点进行调度,在这种情况下,部署有Kubernetes的集群也可以被称为Kubernetes集群。

在本申请实施例中,根证书,可以指上述终端集群用于认证身份的自签名根证书;举例而言,对于Kubernetes集群而言,通常需要PKI(Public Key Infrastructure,公开密钥基础设施)证书才能进行基于TLS(Transport Layer Security,传输层安全协议)的身份验证,因此,Kubernetes的集群会统一配置用于认证集群本身的根证书CA.crt。可以理解的,在除Kubernetes以外的其他的终端集群中,根证书的文件名、存储目录可能不同,根证书的具体内容也可能存在差异,但由于根证书本身用于认证的功能特质并未发生变化,因此本领域技术人员可以根据本说明书的公开内容,完成对应的迁移应用和扩展。

在本申请实施例中,通过获取与第一环境机器码信息相对应的第一终端集群的第一根证书,使得被购买的产品只能由与第一环境机器码信息相对应的第一终端集群进行部署,有效防止客户把证书外漏或二次售卖。

在本申请实施例中,通过客户的购买产品的Scale写入证书,从而来限制客户通过修改数据库来实现更改Scale的值,代码中会通过对比数据库与证书中购买的Scale的值,如有差距,以证书的为准。

在本申请实施例中,证书分为实例证书(二级证书)和应用证书(三级证书),其中实例证书为应用根证书签发,根证书为OpenSSL的自签名证书,采用的是AES加密算法。应用证书由实例证书签发,皆采用PEM编码的X.509证书标准。

在本申请实施例中,证书生成分发业务主要由证书管理服务器进行统一签发管理,从而实现与License分发平台系统的解耦。

在本申请实施例中,采用证书链的方式签发,从一定程度上也起到了一定防盗版的作用,把配置集以及购买信息打入证书之中,客户无法通过修改证书来篡改环境信息。

本实施例的一些可选的实现方式中,可以对证书颁发进行分类归档,所有颁发记录全部存入Mysql数据库以及Redis,为后续查询做好准备。存入redis缓存可以做到查询百万数据仅为1秒,大大提高了查询效率。

在本申请实施例中,证书分发平台成功创建证书后,通过邮件给客户发送提示信息,客户可来应用平台进行自助下载。

在本申请实施例中,提供了一种基于LICENSE系统的应用证书管理装置200,该装置200包括:信息接收模块210,用于接收用户终端发送的应用购买信息,其中,应用购买信息包括目标应用标识、应用Scale值以及第一环境机器码信息;第一根证书获取模块220,用于获取与第一环境机器码信息相对应的第一终端集群的第一根证书;Scale值写入模块230,用于获取实例配置集,并将应用Scale值写入实例配置集中,得到目标实例配置集;实例证书创建模块240,用于根据第一根证书以及目标实例配置集创建实例证书;应用证书创建模块250,用于获取与目标应用标识相对应的应用配置集,并根据实例证书以及应用配置集创建应用证书;第一分发模块260,用于将应用证书分发至用户终端,以便根据应用证书进行自助下载以及部署操作。

继续参阅图9,示出了图8中信息接收模块210的一种具体实施方式的结构示意图,为了便于说明,仅示出与本申请相关的部分。

在本实施例的一些可选的实现方式中,上述信息接收模块210包括:流处理子模块211以及信息接收子模块212,其中:

流处理子模块211,用于调用kafka流处理平台,并根据kafka流处理平台接收并存储用户终端发送的应用购买信息;

信息接收子模块212,用于从kafka流处理平台中获取应用购买信息。

在本申请实施例中,通过kafka传输可以起到数据不丢失的作用,将购买信息以及客户环境机器码信息通过kafka传输,既可起到两平台解耦的作用,也能保证License分发平台在奔溃的情况下保证数据不丢失。在高并发情况下,还能起到削峰填谷的作用,缓冲应用平台对发放平台的冲击,从而提高平台的健壮性。

在本实施例的一些可选的实现方式中,上述装置200还包括:第二分发模块,其中:

第二分发模块,用于将应用证书分发至第二环境机器码信息相对应的第二终端集群,其中,第二终端集群的第二根证书与应用证书相匹配。

在本申请实施例中,当需要在第二终端集群中增设上述已购买应用的运行权限,可以预先匹配第二终端集群的第二根证书与应用证书,并将应用证书分发至第二环境机器码信息相对应的第二终端集群,以便后续进行权限验证是将第二终端集群识别为第一终端集群,从而保证了云应用仅在被许可的客户的设备上运行的前提下,增加具备运行权限的终端集群。在本实施例的一些可选的实现方式中,上述第二分发模块包括:校验信息计算子模块以及实例证书生成子模块,上述装置200还包括:

校验信息计算子模块,用于计算第一根证书的完整性校验信息;

实例证书生成子模块,用于生成与第一终端集群对应的、携带完整性校验信息的实例证书;

校验信息判断模块,用于判断第二终端集群的第二根证书与应用证书中携带的完整性校验信息是否相匹配;

第一结果模块,用于若第二根证书与完整性校验信息匹配,则将第二终端集群识别为第一终端集群;

第二结果模块,用于若第二根证书与完整性校验信息不匹配,则不将第二终端集群识别为第一终端集群。

在本申请实施例中,完整性校验信息可以是加盐的完整性校验信息;具体而言,上述应用证书不仅可以与终端集群形成对应关系,还可以与目标应用形成对应关系;例如,可以使不同的目标应用在同一台终端集群上使用不同的应用证书,从而进一步满足开发者和经销商对于精细化关系的需求。

在本实施例的一些可选的实现方式中,上述校验信息计算子模块包括:校验信息计算单元,上述校验信息判断模块包括:校验信息计算子模块以及校验信息判断子模块,其中:

校验信息计算单元,用于将应用Scale值作为盐值与第一根证书组合,计算第一根证书的第一含盐完整性校验信息

校验信息计算子模块,用于将应用Scale值作为盐值与第二根证书组合后生成的第二含盐完整性校验信息;

校验信息判断子模块,用于判断第二含盐完整性校验信息与第一含盐完整性校验信息是否相匹配。

在本申请实施例中,可以将上述目标应用的应用Scale值作为盐值与上述第一终端集群的第一根证书组合,计算上述第一终端集群的第一根证书的第一含盐完整性校验信息;相对应的,上述第二终端集群被识别为第一终端集群的条件,可以设置为:将上述目标应用的应用Scale值作为盐值与上述第二终端集群的第二根证书组合后生成的第二含盐完整性校验信息,与上述应用证书中携带的上述第一终端集群的根证书的第一含盐完整性校验信息相匹配。

在本实施例的一些可选的实现方式中,上述第二分发模块包括:第二分发子模块,其中:

第二分发子模块,用于生成包含应用证书以及目标应用标识的执行代码的可部署镜像,并将可部署镜像分发至第二终端集群进行部署。

在本申请实施例中,将上述应用证书与应用的执行代码绑定并分发至第二终端集群进行部署,的具体方式,可以通过镜像部署完整;具体而言,可以首先生成包含上述应用证书和上述执行代码的可部署镜像,再将上述可部署镜像分发至第二终端集群进行部署。

为解决上述技术问题,本申请实施例还提供计算机设备。具体请参阅图10,图10为本实施例计算机设备基本结构框图。

所述计算机设备300包括通过系统总线相互通信连接存储器310、处理器320、网络接口330。需要指出的是,图中仅示出了具有组件310-330的计算机设备300,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。其中,本技术领域技术人员可以理解,这里的计算机设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程门阵列(Field-Programmable Gate Array,FPGA)、数字处理器(Digital Signal Processor,DSP)、嵌入式设备等。

所述计算机设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述计算机设备可以与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互。

所述存储器310至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,所述存储器310可以是所述计算机设备300的内部存储单元,例如该计算机设备300的硬盘或内存。在另一些实施例中,所述存储器310也可以是所述计算机设备300的外部存储设备,例如该计算机设备300上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,所述存储器310还可以既包括所述计算机设备300的内部存储单元也包括其外部存储设备。本实施例中,所述存储器310通常用于存储安装于所述计算机设备300的操作系统和各类应用软件,例如基于LICENSE系统的应用证书管理方法的计算机可读指令等。此外,所述存储器310还可以用于暂时地存储已经输出或者将要输出的各类数据。

所述处理器320在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器320通常用于控制所述计算机设备300的总体操作。本实施例中,所述处理器320用于运行所述存储器310中存储的计算机可读指令或者处理数据,例如运行所述基于LICENSE系统的应用证书管理方法的计算机可读指令。

所述网络接口330可包括无线网络接口或有线网络接口,该网络接口330通常用于在所述计算机设备300与其他电子设备之间建立通信连接。

本申请提供的计算机设备,将License分发平台与其证书生成分发业务解耦,合理化业务逻辑或者是其代码实现等层面,大大提升了后续系统扩展能力;同时,内部/外部更加灵活获取证书。无论是开发人员与客户使用人员,都可随时灵活的获取证书,提升了开发效率与其使用系统的便捷能力;证书配置集与代码仓库分离。证书配置过于冗余,分离出后较为维护,降低了其维护成本,利于维护。

本申请还提供了另一种实施方式,即提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可读指令,所述计算机可读指令可被至少一个处理器执行,以使所述至少一个处理器执行如上述的基于LICENSE系统的应用证书管理方法的步骤。

本申请提供的计算机可读存储介质,将License分发平台与其证书生成分发业务解耦,合理化业务逻辑或者是其代码实现等层面,大大提升了后续系统扩展能力;同时,内部/外部更加灵活获取证书。无论是开发人员与客户使用人员,都可随时灵活的获取证书,提升了开发效率与其使用系统的便捷能力;证书配置集与代码仓库分离。证书配置过于冗余,分离出后较为维护,降低了其维护成本,利于维护。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例所述的方法。

显然,以上所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例,附图中给出了本申请的较佳实施例,但并不限制本申请的专利范围。本申请可以以许多不同的形式来实现,相反地,提供这些实施例的目的是使对本申请的公开内容的理解更加透彻全面。尽管参照前述实施例对本申请进行了详细的说明,对于本领域的技术人员来而言,其依然可以对前述各具体实施方式所记载的技术方案进行修改,或者对其中部分技术特征进行等效替换。凡是利用本申请说明书及附图内容所做的等效结构,直接或间接运用在其他相关的技术领域,均同理在本申请专利保护范围之内。

相关技术
  • 一种后端存储设备的管理方法、装置、设备以及存储介质
  • 基于神经网络的商户管理方法、装置、计算机设备及存储介质
  • 虚拟机应用程序管理方法、装置、设备及可读存储介质
  • 平台应用管理方法、装置、存储介质及终端设备
  • 多版本数据存储管理方法及装置、电子设备、存储介质
  • license授权管理方法、系统、设备和存储介质
  • 基于区块链的数字证书管理方法及系统、设备、存储介质
技术分类

06120115869119