一种MQTT服务组件动态生成证书的方法及装置制造方法及图纸

技术编号:33024067 阅读:12 留言:0更新日期:2022-04-15 08:57
本发明专利技术特别涉及一种MQTT服务组件动态生成证书的方法及装置。该MQTT服务组件动态生成证书的方法及装置,设置前置程序,完成初始化工作;启动前置程序,调用证书生成程序;证书生成程序通过HTTP协议与证书生成中心通信,获取中心证书;若Docker容器未获取到证书信息,则对证书生成中心进行锁定,生成本地证书后将其上传到证书生成中心,上传完毕后释放锁;将接收到的中心证书与本地证书进行对比,若发现本地证书与中心证书不一致,则对本地证书进行替换。该MQTT服务组件动态生成证书的方法及装置,使证书能够动态生成,还能定时获取证书生成中心证书信息,及时进行证书更换,既统一了Docker容器集群的证书信息,又无需人干预和修改镜像,减少了组件间的耦合性。减少了组件间的耦合性。减少了组件间的耦合性。

【技术实现步骤摘要】
一种MQTT服务组件动态生成证书的方法及装置


[0001]本专利技术涉及物联网
,特别涉及一种MQTT服务组件动态生成证书的方法及装置。

技术介绍

[0002]如今物联网技术被应用到生活和生产的各个方面,物联网基于互联网作为信息载体,通过各种传感器设备采集数据,在实现物与物连接、物与人、物与网络连接的同时,物联网领域的信息安全也成为一项巨大而艰难的挑战,因此物联网领域出现了各种支持物联网协议的组件和应用,其中EQMX服务器应用组件就在其中。
[0003]MQTT服务组件是一种消息服务器应用,是专门针对物联网领域协议的使用而编写的。MQTT服务组件可以支持MQTT、CoAP等协议的信息传输,为了实现信息安全,物联网设备和组件都需要实现一机一密认证,即每个设备和组件拥有其唯一的设备证书。实现一机一密的设备和组件在信息传输过程中就可以对信息进行加密,即MQTT+TLS、CoAP+DTLS等。在云原生流行的当下,基于Docker对MQTT服务组件进行容器化也是物联网行业普遍进行的操作。
[0004]常规情况下容器化的MQTT服务组件基于Docker镜像制作,容器化后的组件需要能够满足MQTT、CoAP等协议的加密传输,但是当遇到镜像中证书过期或证书信息修改的场景时,会出现以下问题:
[0005]1).基于容器化后的MQTT服务组件由于证书的修改需要重新生成镜像。
[0006]2).如果只修改Docker容器里面内容,Docker容器重启时会还原回原来的旧证书,导致出错。
[0007]3).如果更换部署环境,Docker镜像就会因为证书问题而重新打包。
[0008]4).容器化的MQTT服务组件在组成集群的情况下各Docker容器必须使用统一证书问题。
[0009]基于上述情况,本专利技术提出了一种MQTT服务组件动态生成证书的方法及装置。

技术实现思路

[0010]本专利技术为了弥补现有技术的缺陷,提供了一种简单高效的MQTT服务组件动态生成证书的方法及装置。
[0011]本专利技术是通过如下技术方案实现的:
[0012]一种MQTT服务组件动态生成证书的方法,其特征在于:
[0013]第一步,设置前置程序,完成初始化工作;
[0014]第二步,启动前置程序,并通过前置程序调用证书生成程序;
[0015]第三步,证书生成程序通过HTTP协议与证书生成中心通信,通过接口调用方式获取中心证书;
[0016]若Docker容器未获取到证书信息,则对证书生成中心进行锁定,当集群中其他
Docker容器探测到锁定状态的证书生成中心时进行等待;对证书生成中心进行锁定的Docker容器生成本地证书后,将其上传到证书生成中心,上传完毕则释放锁;
[0017]第四步,证书生成程序将接收到的中心证书与本地证书进行对比,若发现本地证书与中心证书不一致,则对本地证书进行替换。
[0018]所述第三步中,集群模式下,集群中第一个启动的Docker容器先在证书生成中心生成锁,拒绝其他Docker容器的证书生成请求,然后根据Docker容器的环境信息生成本地证书,将其上传到证书生成中心,向集群发布证书并释放锁;
[0019]集群中其他Docker容器启动后获取不到生成锁时,将进入等待状态,直到发现证书发布信息,将证书生成中心的证书信息拉取到本地,然后生成本地证书,从而确保容器化的MQTT服务组件在集群模式下使用统一证书。
[0020]单机模式下,将ROOT CA证书放进Docker容器,证书生成程序根据CA证书和接收到的指令参数生成MQTT服务组件的证书,然后将证书配置给MQTT服务组件使用,从而实现证书的动态生成,确保MQTT服务组件的一机一密。
[0021]所述第四步中,证书生成程序在启动后开启证书维护操作,定时主动调用证书生成中心接口,进行HTT通信,获取证书生成中心的证书信息与本地证书对比,如果发现本地证书与中心证书不一致,则更新本地证书,从而保证证书统一。
[0022]所述第四步中,每5分钟主动调用一次证书生成中心接口。
[0023]一种MQTT服务组件动态生成证书的装置,其特征在于:包括Docker容器和证书生成中心,所述Docker容器包括初始化模块,通信模块,证书生成与管理模块和MQTT服务组件;
[0024]所述初始化模块负责完成初始化工作,并调用证书生成模块;
[0025]所述通信模块负责利用HTTP协议与证书生成中心通信,并通过接口调用方式获取中心证书;
[0026]所述证书生成与管理模块负责将接收到的中心证书与本地证书进行对比,若发现本地证书与中心证书不一致,则对本地证书进行替换;
[0027]若所述证书生成与管理模块未获取到证书信息,则发出锁定信息,对证书生成中心进行锁定,并生成本地证书将其上传到证书生成中心,上传完毕后释放锁;
[0028]所述证书生成与管理模块探测到锁定状态的证书生成中心时,进入等待状态。
[0029]集群模式下,集群中第一个启动的Docker容器通过证书生成与管理模块发出锁定信息,在证书生成中心生成锁,拒绝其他Docker容器的证书生成请求;然后证书生成与管理模块根据Docker容器的环境信息生成本地证书,将其上传到证书生成中心,向集群发布证书并释放锁;
[0030]集群中其他Docker容器启动后,证书生成与管理模块获取不到生成锁时,将进入等待状态,直到发现证书发布信息,将证书生成中心的证书信息拉取到本地,然后生成本地证书,从而确保容器化的MQTT服务组件在集群模式下使用统一证书。
[0031]单机模式下,将ROOT CA证书放进Docker容器,证书生成与管理模块根据CA证书和接收到的指令参数生成MQTT服务组件的证书,然后将证书配置给MQTT服务组件使用,从而实现证书的动态生成,确保MQTT服务组件的一机一密。
[0032]所述证书生成与管理模块在启动后开启证书维护操作,定时主动调用通信模块访
问证书生成中心接口,进行HTT通信,获取证书生成中心的证书信息与本地证书对比,如果发现本地证书与中心证书不一致,则更新本地证书,从而保证证书统一。
[0033]所述证书生成与管理模块每5分钟主动调用通信模块访问一次证书生成中心接口。
[0034]本专利技术的有益效果是:该MQTT服务组件动态生成证书的方法及装置,不仅替代了传统的证书存放方式,使证书能够动态生成,还能定时获取证书生成中心证书信息,与本地证书对比后及时进行证书更换,既统一了Docker容器集群的证书信息,又无需人干预和修改镜像,减少了组件间的耦合性。
附图说明
[0035]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种MQTT服务组件动态生成证书的方法,其特征在于,包括以下步骤:第一步,设置前置程序,完成初始化工作;第二步,启动前置程序,并通过前置程序调用证书生成程序;第三步,证书生成程序通过HTTP协议与证书生成中心通信,通过接口调用方式获取中心证书;若Docker容器未获取到证书信息,则对证书生成中心进行锁定,当集群中其他Docker容器探测到锁定状态的证书生成中心时进行等待;对证书生成中心进行锁定的Docker容器生成本地证书后,将其上传到证书生成中心,上传完毕则释放锁;第四步,证书生成程序将接收到的中心证书与本地证书进行对比,若发现本地证书与中心证书不一致,则对本地证书进行替换。2.根据权利要求1所述的MQTT服务组件动态生成证书的方法,其特征在于:所述第三步中,集群模式下,集群中第一个启动的Docker容器先在证书生成中心生成锁,拒绝其他Docker容器的证书生成请求,然后根据Docker容器的环境信息生成本地证书,将其上传到证书生成中心,向集群发布证书并释放锁;集群中其他Docker容器启动后获取不到生成锁时,将进入等待状态,直到发现证书发布信息,将证书生成中心的证书信息拉取到本地,然后生成本地证书,从而确保容器化的MQTT服务组件在集群模式下使用统一证书。3.根据权利要求1所述的MQTT服务组件动态生成证书的方法,其特征在于:单机模式下,将ROOT CA证书放进Docker容器,证书生成程序根据CA证书和接收到的指令参数生成MQTT服务组件的证书,然后将证书配置给MQTT服务组件使用,从而实现证书的动态生成,确保MQTT服务组件的一机一密。4.根据权利要求1所述的MQTT服务组件动态生成证书的方法,其特征在于:所述第四步中,证书生成程序在启动后开启证书维护操作,定时主动调用证书生成中心接口,进行HTT通信,获取证书生成中心的证书信息与本地证书对比,如果发现本地证书与中心证书不一致,则更新本地证书,从而保证证书统一。5.根据权利要求4所述的MQTT服务组件动态生成证书的方法,其特征在于:所述第四步中,每5分钟主动调用一次证书生成中心接口。6.一种MQTT服务组件动态生成证书的装置,其特征在于:包括Docker容器和证书生成...

【专利技术属性】
技术研发人员:邹先超高美容安晓博
申请(专利权)人:浪潮云信息技术股份公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1