CN114826608A - 一种微服务的证书管理方法、装置及认证系统 - Google Patents
一种微服务的证书管理方法、装置及认证系统 Download PDFInfo
- Publication number
- CN114826608A CN114826608A CN202210350970.9A CN202210350970A CN114826608A CN 114826608 A CN114826608 A CN 114826608A CN 202210350970 A CN202210350970 A CN 202210350970A CN 114826608 A CN114826608 A CN 114826608A
- Authority
- CN
- China
- Prior art keywords
- certificate
- micro
- token
- service instance
- issuing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000007726 management method Methods 0.000 title abstract description 27
- 238000000034 method Methods 0.000 claims abstract description 87
- 230000008520 organization Effects 0.000 claims abstract description 25
- 238000004891 communication Methods 0.000 claims description 52
- 230000004044 response Effects 0.000 claims description 44
- 238000012795 verification Methods 0.000 claims description 41
- 230000008569 process Effects 0.000 claims description 25
- 238000012545 processing Methods 0.000 claims description 20
- 230000007246 mechanism Effects 0.000 claims description 4
- 230000003993 interaction Effects 0.000 abstract description 5
- 238000013461 design Methods 0.000 description 31
- 230000006870 function Effects 0.000 description 22
- 238000010586 diagram Methods 0.000 description 17
- 238000004590 computer program Methods 0.000 description 9
- 230000009471 action Effects 0.000 description 4
- 238000013459 approach Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000003999 initiator Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 230000000135 prohibitive effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3263—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0807—Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0823—Network architectures or network communication protocols for network security for authentication of entities using certificates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0869—Network architectures or network communication protocols for network security for authentication of entities for achieving mutual authentication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/321—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
- H04L9/3213—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority using tickets or tokens, e.g. Kerberos
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请提供一种微服务的证书管理方法、装置及认证系统,该认证系统中包括令牌签发中心、证书颁发机构以及多个微服务的微服务实例。第一微服务的第一微服务实例可通过携带令牌签发中心签发的令牌向证书颁发机构申请证书,由证书颁发机构在校验通过令牌后,为第一微服务实例签发证书。该方法中,微服务实例可通过与证书颁发机构进行信息交互,实现证书的申请和下发,从而提高证书管理的效率,解决现有技术中需要手动部署证书效率低,以及在微服务实例数量较多时证书的成本高的问题。同时,由于令牌的有效期比较短,因此,该方法可以避免认证介质泄露的风险,提高系统的安全性。
Description
技术领域
本申请涉及网络通信安全技术领域,尤其涉及一种微服务的证书管理方法、装置及认证系统。
背景技术
随着现代互联网应用越来越复杂,微服务的概念被提出来,微服务技术通过将复杂的系统拆分成多个独立的进程,来减少耦合,提升可维护性。但是微服务天生依赖网络间通信,如何保证网络间通信安全是微服务要解决的一个重要课题。
安全套接字协议(secure sockets layer,SSL)/传输层安全(transportlayersecurity,TLS)技术是目前用于信道加密和身份认证的最主要技术手段,该技术主要依赖数字证书来实现身份认证。通常需要人工从公共的数字证书机构申请证书,并手动部署到硬盘中微服务对应的路径下,再由微服务进行加载。然而,从公共的数字证书机构获取签发证书价格昂贵,对于微服务这种实例众多的场景成本过高。微服务实例数目众多,手动部署证书会耗费大量的时间,且无法自动追踪证书的有效状态。证书需要落盘到机器上,如果机器被非法入侵,那么证书可能存在泄露的风险。
综上,现有技术主要存在以下不足:数字证书价格昂贵,不适用大规模的微服务部署;证书无法集中管理,证书的部署、更新极为困难;证书需要落盘存储,存在泄露的风险。
发明内容
本申请提供一种微服务的证书管理方法、装置及认证系统,通过在认证系统中自建证书颁发机构,通过该证书颁发机构为认证系统中部署的微服务实例签发证书,从而实现证书的自动化部署和有效管理,并降低成本。
第一方面,本申请实施例提供一种微服务的证书管理方法,该方法应用于第一微服务的第一微服务实例,所述第一微服务实例部署于本申请所提供的一种微服务的认证系统中。
所述方法包括:第一微服务的第一微服务实例向证书颁发机构发送证书签发请求,所述证书签发请求中包括令牌签发中心为所述第一微服务实例签发的令牌,所述令牌存储于所述第一微服务实例的启动配置文件中,所述令牌的有效期小于设定阈值;所述第一微服务实例接收来自所述证书颁发机构的证书签发响应,所述证书签发响应中包括所述证书颁发机构在校验通过所述令牌后为所述第一微服务实例签发的第一证书。
上述技术方案中,第一微服务实例通过携带令牌签发中心签发的令牌向证书颁发机构申请证书,由证书颁发机构在校验通过令牌后,为第一微服务实例签发证书。该方法中,微服务实例可通过与证书颁发机构进行信息交互,实现证书的申请和下发,从而提高证书管理的效率。同时,由于令牌的有效期比较短,因此,该方法可以避免认证介质泄露的风险,提高系统的安全性。
在一种可能的设计中,所述令牌中包括令牌签发中心身份描述信息、微服务实例身份描述信息、证书颁发机构身份描述信息、令牌签发时间和令牌过期时间。
上述技术方案中,证书颁发机构可根据令牌中包括的上述信息对令牌进行校验。
在一种可能的设计中,所述方法还包括:所述第一微服务实例基于所述第一证书,从配置中心获取第二微服务的配置信息;所述第一微服务实例根据所述第二微服务的配置信息,选择所述第二微服务的第二微服务实例并发起连接。
上述技术方案中,第一微服务实例可基于证书颁发机构签发的证书,获取其他微服务的配置信息,进而实现与其他微服务的微服务实例之间的通信。
在一种可能的设计中,所述第二微服务的配置信息中包括以下一项或多项信息:实例信息、路由信息、合法证书信息;其中,所述实例信息包括所述第二微服务的各个微服务实例的IP地址和端口,所述路由信息用于指示访问所述第二微服务时的实例选择规则,所述合法证书信息用于校验通信对端的证书。
上述技术方案中,第一微服务实例可基于第二微服务的配置信息中包括的上述信息,选择与第二微服务的第二微服务实例建立连接。
在一种可能的设计中,所述方法还包括:所述第一微服务实例在所述第一证书过期前,基于所述第一证书向所述证书颁发机构发送证书更新请求;所述第一微服务实例接收来自所述证书颁发机构的证书更新响应,所述证书更新响应中包括所述证书颁发机构在校验通过所述第一证书后为所述第一微服务实例签发的第二证书。
上述技术方案中,第一微服务实例基于证书颁发机构签发的旧证书,向证书颁发机构申请更新证书,由证书颁发机构在校验通过旧证书后,为第一微服务实例签发新的证书。该方法中,微服务实例可通过与证书颁发机构进行信息交互,实现证书的自动更新,从而提高证书管理的效率。
第二方面,本申请实施例提供一种微服务的证书管理方法,该方法应用于证书颁发机构,所述证书颁发机构部署于本申请所提供的一种微服务的认证系统中。
所述方法包括:证书颁发机构接收来自第一微服务的第一微服务实例的证书签发请求,所述证书签发请求中包括令牌签发中心为所述第一微服务实例签发的令牌,所述令牌存储于所述第一微服务实例的启动配置文件中,所述令牌的有效期小于设定阈值;所述证书颁发机构对所述令牌进行校验,并在校验通过后为所述第一微服务实例签发第一证书;所述证书颁发机构向所述第一微服务实例发送证书签发响应,所述证书签发响应中包括所述第一证书。
在一种可能的设计中,所述令牌中包括令牌签发中心身份描述信息、微服务实例的身份描述信息、证书颁发机构的身份描述信息、令牌签发时间和令牌过期时间。
在一种可能的设计中,所述证书颁发机构对所述令牌进行校验,包括:如果所述证书颁发机构身份描述信息不指向所述证书颁发机构,或者所述令牌签发时间晚于所述证书颁发机构的系统时间,或者所述令牌过期时间早于所述当前系统时间,或者所述证书颁发机构根据所述令牌签发中心身份描述信息,查找不到所述令牌签发中心对应的公钥,或者所述证书颁发机构根据所述令牌签发中心身份描述信息,查找到所述令牌签发中心对应的公钥后,使用查找到的所述公钥对所述令牌的头字段和体字段计算得到的摘要信息与所述令牌的签名字段不匹配,则确认校验不通过,否则校验通过。
在一种可能的设计中,所述方法还包括:所述证书颁发机构接收来自所述第一微服务实例的证书更新请求;所述证书颁发机构对所述第一微服务实例在建立连接的过程中提供的所述第一证书进行校验,并在校验通过后为所述第一微服务实例签发第二证书;所述证书颁发机构向所述第一微服务实例发送证书更新响应,所述证书更新响应包括所述第二证书。
在一种可能的设计中,所述证书颁发机构对所述第一微服务实例在建立连接的过程中提供的所述第一证书进行校验,包括:如果所述第一证书由所述证书颁发机构签发且仍在有效期内,则确认校验通过,否则校验不通过。
第二方面的各种可能的设计中的技术效果,可参见第一方面的相应描述,不再赘述。
第三方面,本申请实施例提供一种微服务的证书管理装置,该装置可包括执行上述第一方面或第二方面的任意一种可能的设计的方法的模块/单元。这些模块/单元可以通过硬件实现,也可以通过硬件执行相应的软件实现。
在一种可能的设计中,所述装置可包括通信模块和处理模块。
其中,当所述装置执行对应于第一微服务实例的方法或步骤时,所述通信模块,用于向证书颁发机构发送证书签发请求,所述证书签发请求中包括令牌签发中心为所述第一微服务实例签发的令牌,所述令牌存储于所述第一微服务实例的启动配置文件中,所述令牌的有效期小于设定阈值;所述通信模块,还用于接收来自所述证书颁发机构的证书签发响应。
当所述装置执行对应于证书颁发机构的方法或步骤时,所述处理模块,用于通过所述证书签发响应中获取所述证书颁发机构在校验通过所述令牌后为所述第一微服务实例签发的第一证书。所述通信模块,用于接收来自第一微服务的第一微服务实例的证书签发请求,所述证书签发请求中包括令牌签发中心为所述第一微服务实例签发的令牌,所述令牌存储于所述第一微服务实例的启动配置文件中,所述令牌的有效期小于设定阈值;所述处理模块,用于对所述令牌进行校验,并在校验通过后为所述第一微服务实例签发第一证书;所述通信模块,还用于向所述第一微服务实例发送证书签发响应,所述证书签发响应中包括所述第一证书。
第四方面,本申请实施例还提供一种计算机设备,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序指令执行如第一方面或第二方面的各种可能的设计中所述的方法。
第五方面,本申请实施例还提供一种计算机可读存储介质,其中存储有计算机可读指令,当计算机读取并执行所述计算机可读指令时,使得上述第一方面或第二方面的任一种可能的设计中所述的方法实现。
第六方面,本申请实施例还提供一种计算机程序产品,包括计算机可读指令,当计算机可读指令被处理器执行时,使得上述第一方面或第二方面的任一种可能的设计中所述的方法实现。
第七方面,本申请实施例提供一种微服务的认证系统,该认证系统中包括令牌签发中心、证书颁发机构以及多个微服务的微服务实例。进一步地,该认证系统中还包括配置中心。可选的,该认证系统中的令牌签发中心、证书颁发机构、配置中心等功能实体均可以有一个或多个。而且,该认证系统中可以部署有多个微服务,每种微服务均可以有一个或多个微服务实例。
所述令牌签发中心,用于为所述认证系统中部署的每个所述微服务实例签发令牌,所述令牌存储于所述微服务实例的启动配置文件中,并用于在所述微服务实例部署后第一次向所述证书颁发机构申请签发证书时的身份认证,所述令牌的有效期小于设定阈值。
所述微服务实例,用于基于所述令牌向所述证书颁发机构申请签发证书,并接收来自所述证书颁发机构的证书。所述证书用于所述微服务实例后续与所述证书颁发机构或其它微服务的微服务实例进行网络通信时的信道加密和身份认证。可选的,所述令牌可以由微服务实例携带在证书签发请求中发送给证书颁发机构。
所述证书颁发机构,用于对所述微服务实例的所述令牌进行校验,并在校验通过后为所述微服务实例签发证书,并返回给所述微服务实例。
在一种可能的设计中,所述微服务实例,还用于在证书颁发机构签发的旧证书过期前,基于该旧证书向证书颁发机构申请签发新证书,并接收来自证书颁发机构的新证书。相应的,所述证书颁发机构,还用于对所述微服务实例的旧证书进行校验,并在校验通过后为所述微服务实例签发新证书,并返回给所述微服务实例。可选的,所述旧证书可以由微服务实例在与证书颁发机构建立连接的过程中提供给证书颁发机构。
所述配置中心,用于存储该认证系统中部署的多个微服务的配置信息。
在一种可能的设计中,所述微服务实例,还用于基于证书颁发机构签发的所述证书从所述配置中心获取其他微服务的配置信息,并基于所述其他微服务的配置信息选择该其他微服务的一个微服务实例发起连接。相应的,所述配置中心,用于对所述微服务实例的证书进行校验,在校验通过后向所述微服务实例提供所述其他微服务的配置信息。
本申请实施例提供的技术方案可适用于微服务的大规模部署场景中,用以实现微服务实例证书的自动化部署和有效管理。
具体而言,本申请中的微服务的认证系统通过引入令牌签发中心和证书颁发机构等功能实体为该认证系统内部署的微服务实例签发证书,从而实现证书的自动化地申请和更新等管理功能,解决现有技术中需要手动部署证书效率低,以及在微服务实例数量较多时手动部署成本高等问题。
示例性地,令牌签发中心可为认证系统中的每个微服务实例签发令牌,作为微服务实例与证书颁发机构初次通信时的认证介质,该令牌可存储在微服务实例的启动配置文件中,以便微服务实例在启动后自动读取,并触发后续的证书申请流程。以第一微服务的第一微服务实例为例,该第一微服务实例在启动后,可基于读取到的令牌向证书颁发机构申请证书。证书颁发机构接收到第一微服务实例的证书申请后,可对第一微服务实例的令牌进行校验,并在校验通过后为第一微服务实例签发第一证书,并返回给第一微服务实例。由于令牌签发中心签发给第一微服务实例的令牌在较短的时间内便会失效,因此,即使该第一微服务实例的启动配置文件发生泄露,也不对系统的安全造成影响。证书颁发机构签发给第一微服务实例的证书可用于第一微服务实例与其他微服务的微服务实例进行通信时的互相认证和信道加密,以保障通信安全,而且每个微服务实例的证书全程可由该微服务实例管理并仅存储在内存中,不需要落盘存储,因此,可以避免认证介质的泄露风险。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种微服务的认证系统的结构示意图;
图2为本申请实施例提供的一种微服务的证书管理方法的流程示意图;
图3为本申请实施例中第一微服务实例向证书颁发机构申请更新证书的流程示意图;
图4为本申请实施例中第一微服务实例从配置中心获取配置信息,以及基于配置信息访问第二微服务的流程示意图;
图5为本申请实施例中微服务的认证系统中的各个组成部分之间的交互流程示意图;
图6为本申请实施例中证书颁发机构接收到的证书签发/更新请求后的认证处理逻辑的示意图;
图7为本申请实施例中第二微服务的配置信息的格式示意图;
图8为本申请实施例中请求发起者与服务提供者进行网络通信前的认证处理逻辑的示意图;
图9为本申请实施例提供的一种微服务的证书管理装置的结构示意图;
图10为本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在本申请的实施例中,多个是指两个或两个以上。“第一”、“第二”等词汇,仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。
图1示例性示出了本申请实施例提供的一种基于微服务的认证系统100,该系统可包括:令牌签发中心110、证书颁发机构(certificate authority,CA)120、配置中心130以及多个微服务的微服务实例140。
所述认证系统中部署的多个微服务是指多种类型的微服务。每个微服务用于实现一种业务功能,不同的微服务实现的业务功能不同。每个微服务可以有一个或多个微服务实例,相同微服务的微服务实例部署在不同的网络位置,并可用于实现相同的业务功能。
可选的,本申请中的微服务实例可通过内嵌的软件开发工具包(softwaredevelopment kit,SDK)实现,该微服务实例有关认证的功能,包括证书管理、配置管理和连接管理等。不同微服务的微服务实例之间可以基于证书进行安全的网络通信。为了描述方便,图1中仅示出一个微服务实例作为例子。
需要说明的是,所述认证系统中的令牌签发中心、证书颁发机构、配置中心等功能实体均可以有一个或多个,图1仅为一种示例。
下面对本申请提供的微服务的认证系统中各个部分的功能进行详细介绍。
所述令牌签发中心,用于为该认证系统中部署的每个微服务实例签发令牌。
所述令牌作为认证介质,用于在微服务实例部署后初次向证书颁发机构申请证书时的身份认证。为避免认证介质泄露风险,该令牌的有效期小于设定阈值。也就是说,该令牌在较短的时间内便会失效,微服务实例需要在该令牌失效前利用该令牌申请到证书,否则需要重新获取令牌。
在一种可能的设计中,所述令牌中可包括令牌签发中心身份描述信息、微服务实例身份描述信息、证书颁发机构身份描述信息、令牌签发时间和令牌过期时间。其中,令牌签发中心身份描述信息用于指示该令牌由哪个令牌签发中心签发,例如可以是令牌签发中心的标识信息。微服务实例身份描述信息用于指示该令牌被签发给哪个微服务实例,例如可以是微服务实例的标识信息。证书颁发机构身份描述信息用于指示哪个证书颁发机构负责校验该令牌,例如可以是证书颁发机构的标识信息。
所述微服务实例,用于基于令牌签发中心签发的令牌向证书颁发机构申请签发证书,并接收来自证书颁发机构的证书。所述证书可用于该微服务实例后续与证书颁发机构或其它微服务的微服务实例进行网络通信时的信道加密和身份认证。所述令牌可以由微服务实例携带在证书签发请求中发送给证书颁发机构。
所述证书颁发机构,用于对微服务实例的令牌进行校验,并在校验通过后为微服务实例签发证书,并返回给微服务实例。
在一种可能的设计中,所述微服务实例,还用于在证书颁发机构签发的旧证书过期前,基于该旧证书向证书颁发机构申请签发新证书,并接收来自证书颁发机构的新证书,从而实现证书更新。相应的,所述证书颁发机构,还用于对微服务实例的旧证书进行校验,并在校验通过后为微服务实例签发新证书,并返回给微服务实例。所述旧证书可以由微服务实例在与证书颁发机构建立连接的过程中提供给证书颁发机构。
所述配置中心,用于存储该认证系统中部署的多个微服务的配置信息。
每个微服务的配置信息中可包括该微服务的下列一项或多项信息:标识信息、实例信息、路由信息和合法证书信息。其中,标识信息是指微服务的名称;实例信息包括发布微服务的各个微服务实例的IP地址和端口,可以用网络地址来表示;路由信息用于指示访问微服务时的实例选择规则,该实例选择规则可根据微服务实例部署的归属地区、网络地址、网络服务提供者(internet serviceprovider,ISP)等设置;所述合法证书信息用于校验通信对端(如另一微服务的微服务实例)的证书,可以是签发通信对端的证书的根证书。
在一种可能的设计中,所述微服务实例,还用于基于证书颁发机构签发的证书,从配置中心获取其他微服务的配置信息,进而根据某一微服务的配置信息,选择该微服务的一个微服务实例并发起连接,以便进行业务上的通信。相应的,所述配置中心可对微服务实例提供的证书校验,并在校验通过后向该微服务实例提供其他微服务的配置信息。
图2示例性示出了本申请实施例提供的一种微服务的证书管理方法,该方法以认证系统中部署的第一微服务的第一微服务实例为例,介绍认证系统中为微服务实例签发和更新证书,以及微服务实例之间进行通信的机制。
如图2所示,该方法包括:
步骤201,第一微服务的第一微服务实例向证书颁发机构发送证书签发请求,该证书签发请求中包括令牌签发中心为第一微服务实例签发的令牌。
相应的,证书颁发机构接收来自第一微服务实例的证书签发请求。
所述令牌存储于第一微服务实例的启动配置文件中,并由第一微服务实例启动后从存储器中读取得到。
可选的,该令牌可以是令牌签发中心根据该令牌签发中心自身的证书签发给第一微服务实例的。在实际应用中,认证系统的管理员可根据预先配置的该认证系统的根证书为令牌签发中心签发该令牌签发中心自身的证书,然后将该证书作为令牌签发中心的启动参数存储到其启动配置文件中,并启动该令牌签发中心。进而,令牌签发中心可基于自身的证书为第一微服务实例签发令牌,然后由管理员将该令牌配置到第一微服务实例的启动配置文件中。
所述令牌中可包括令牌签发中心的身份描述信息、第一微服务实例的身份描述信息、证书颁发机构的身份描述信息、令牌签发时间和令牌过期时间。为了避免令牌泄露引发系统的安全问题,该令牌的有效期小于设定阈值,也即令牌过期时间与令牌签发时间之间的时间间隔小于所述设定阈值。
需要说明的是,图2的方法中涉及第一微服务实例的动作或步骤,具体可由该第一微服务实例中的SDK执行,该SDK以依赖的方式嵌入在微服务的代码中,负责该第一微服务实例有关证书管理、配置管理和连接管理的功能,也可称为第一微服务SDK。因此,所述令牌中包括的第一微服务实例的身份描述信息,也可以是指第一微服务SDK的身份描述信息。下文中所提及的第一微服务实例的身份也可以是指第一微服务SDK的身份。
步骤202,证书颁发机构对第一微服务实例的令牌进行校验,并在校验通过后为第一微服务实例签发第一证书。
本申请中,当证书颁发机构初次为第一微服务实例签发证书时,证书颁发机构可采用基于令牌的认证方式。证书颁发机构对第一微服务实例的令牌进行校验具体是指,通过该令牌是否校验通过,来认证第一微服务实例的身份是否合法,或者说确认来自第一微服务实例的证书签发请求是否有效。
示例性地,证书颁发机构对第一微服务实例的令牌进行校验可以为:如果判断令牌中的证书颁发机构身份描述信息不指向当前的该证书颁发机构,或者令牌中的令牌签发时间晚于当前系统时间,或者令牌中的令牌过期时间早于当前系统时间,或者根据令牌中的令牌签发中心身份描述信息,查找不到令牌签发中心对应的公钥,或者根据令牌中的令牌签发中心身份描述信息,查找到令牌签发中心对应的公钥后,使用查找到的公钥对令牌的头(Header)字段和体(Body)字段计算得到的摘要信息与令牌的签名(Signature)字段不匹配,则确认校验不通过,否则校验通过。
需要说明的是,本申请对上述令牌校验过程中,令牌中的各项信息(如令牌签发中心身份描述信息、证书颁发机构身份描述信息、令牌签发时间和令牌过期时间)的校验顺序不作具体限定。
在令牌校验通过后,证书颁发机构可根据预先配置的该认证系统的根证书,为第一微服务实例签发第一证书。该第一证书可用作第一微服务实例后续在与证书颁发机构、或配置中心、或其它微服务的微服务实例(例如第二微服务的第二微服务实例)进行网络通信时的信道加密和身份认证,以避免通信数据被窃取和篡改的风险,提高系统安全性。
在实际应用中,认证系统的根证书和令牌签发中心的证书可作为证书颁发机构的启动参数,预先配置在证书颁发机构的启动配置文件中,以便证书颁发机构校验第一微服务实例提供的证书或令牌,以及为第一微服务实例签发证书。
步骤203,证书颁发机构向第一微服务实例发送证书签发响应,该证书签发响应中包括所述第一证书。
相应的,第一微服务实例接收来自证书颁发机构的证书签发响应。
需要说明的是,第一证书具有一定的有效期,第一微服务实例可在第一证书过期前,向证书颁发机构申请更新证书,即重新申请签发证书。
图3示例性示出了本申请实施例中第一微服务实例向证书颁发机构申请更新证书的过程,如图3所示,该过程包括:
步骤301,第一微服务实例在第一证书过期前,基于该第一证书向证书颁发机构发送证书更新请求。
相应的,证书颁发机构接收来自第一微服务实例的证书更新请求。
第一微服务实例可以在与证书颁发机构建立连接的过程中,向证书颁发机构提供将要过期的第一证书,例如可以在安全套接字协议层(Security SocketLayer,SSL)握手阶段提供通过连接的属性提供。
步骤302,证书颁发机构对第一微服务实例提供的第一证书进行校验,并在校验通过后为第一微服务实例签发第二证书。
本申请中,当证书颁发机构为第一微服务实例更新证书时,证书颁发机构可采用基于证书的认证方式。证书颁发机构对第一微服务实例的第一证书进行校验具体是指,通过该第一证书是否校验通过,来认证第一微服务实例的身份是否合法,或者说确认来自第一微服务实例的证书更新请求是否有效。
示例性地,证书颁发机构对第一微服务实例的第一证书进行校验可以为:如果判断第一证书由当前的该证书颁发机构签发且该第一证书仍在有效期内,则校验通过,否则校验不通过。
步骤303,证书颁发机构向第一微服务实例发送证书更新响应,该证书更新响应中包括所述第二证书。
相应的,第一微服务实例接收来自证书颁发机构的证书更新响应。
在上述过程中,第一证书是证书颁发机构之前为第一微服务实例签发的旧证书,第二证书是证书颁发机构此次为第一微服务实例签发的新证书,第二证书与第一证书的作用相同,不再赘述。
本申请中,第一微服务实例可实时监控申请获得的证书的有效期,在证书过期之前,通过上述过程重新向证书颁发机构申请签发新证书,并在成功获取到新证书后,自动安装新证书。
进一步地,本申请中,当第一微服务实例成功获取到证书颁发机构签发的证书之后,第一微服务实例还可基于证书颁发机构签发的证书(例如可以是第一证书或第二证书),从配置中心获取该认证系统中部署的一个或多个其他微服务的配置信息,并基于获取到的配置信息,访问其他微服务的微服务实例。在一种可能的设计中,第一微服务实例还可基于证书从配置中心获取该认证系统中部署的所有其他微服务的配置信息。
以第一微服务实例访问第二微服务为例,第一微服务实例可根据第二微服务的配置信息,选择第二微服务的第二微服务实例并发起连接。具体选择微服务实例的方式可根据第二微服务的配置信息中路由信息所指示的实例选择规则确定。
其中,所述第二微服务的配置信息可包括第二微服务的标识信息、实例信息、路由信息、合法证书信息等信息中的一项或多项。标识信息是指第二微服务的名称,实例信息包括发布第二微服务的各个微服务实例的IP地址和端口,路由信息用于指示访问第二微服务时的实例选择规则,合法证书信息用于校验通信对端的证书。
图4示例性地示出了本申请实施例中第一微服务实例从配置中心获取配置信息,以及基于配置信息访问第二微服务的过程,如图4所示,该过程包括:
步骤401,第一微服务实例基于第一证书,向配置中心发送配置获取请求。
相应的,配置中心可接收来自第一微服务实例的配置获取请求。
可选的,第一微服务实例在与配置中心建立连接的过程中向配置中心提供第一证书。
步骤402,配置中心对第一微服务实例的第一证书进行校验,并在校验通过后向第一微服务实例发送配置获取响应,该配置获取响应中包括认证系统中部署的一个或多个其他微服务的配置信息。
需要说明的是,配置中心仅支持基于证书的认证方式。也就是说,一个微服务实例只有在成功从证书颁发机构申请到证书后,才可从配置中心获取其他微服务的配置信息。
可选的,第一微服务实例可按照设定周期周期性地向配置信息请求获取其他微服务的配置信息,从而使得配置信息保持准确性。
步骤403,第一微服务实例根据获取到的第二微服务的配置信息,选择第二微服务的第二微服务实例并建立通信连接。
具体的,在连接建立阶段,第一微服务实例校验第二微服务实例提供的证书是否合法,如果校验第二微服务实例的证书不合法,则可主动断开连接,并尝试第二微服务的其他微服务实例。
在一次请求完成后,第一微服务实例可保留已建立的连接,如果在短时间内还有需要向相同IP地址和端口的第二微服务实例发送请求,第一微服务实例可复用保留的连接,以提升系统性能。此外,第一微服务实例在每次复用连接之前可再次校验通信对端证书的有效性,避免向拥有非法或过期证书的实例发送数据。
图5示例性示出了本申请实施例中微服务的认证系统中的各个组成部分之间的交互流程,该流程包括如下步骤:
步骤501,认证系统的管理员向令牌签发中心提供第一微服务实例的身份信息。
步骤502,令牌签发中心为第一微服务实例签发令牌,并返回给管理员为该第一微服务实例签发的令牌。
步骤503,管理员为第一微服务实例配置令牌。
本申请中,管理员可使用OpenSSL工具生成一本自签证书,作为整个系统的根证书。然后,使用根证书为令牌签发中心签发证书,使用该证书启动令牌签发中心。令牌签发中心将会使用该证书为第一微服务实例签发令牌。
在部署第一微服务实例之前,管理员可到令牌签发中心处申请获取一个临时用于标识第一微服务实例身份的令牌。在一种可能的设计中,令牌签发中心可为令牌的获取提供相应的WEB页面。
管理员获取到令牌之后,可将令牌配置到第一微服务实例的启动配置文件中,供第一微服务实例启动时读取。该令牌仅用于第一微服务实例初次与证书颁发机构交互时认证使用。一旦第一微服务实例成功从证书颁发机构处获取到证书,之后第一微服务实例与证书颁发机构、配置中心、其他微服务实例交互时均使用证书标识身份。此外,由于令牌落盘至启动配置文件中可能存在泄露的风险,因此令牌的有效期(即生效时间)需小于设定阈值,例如小于5分钟。
在一种可能的设计中,令牌采用JWT Token的格式进行编码,其中令牌n的体(Body)字段中使用以下字段来描述第一微服务实例的身份:iss字段表示令牌签发中心身份描述信息;sub字段表示第一微服务实例身份描述信息;aud字段表示证书颁发机构身份描述信息;iat字段表示令牌签发时间;exp字段表示令牌过期时间。
步骤504,第一微服务实例在启动时加载配置的令牌,并基于该令牌向证书颁发机构发送证书签发请求,该证书签发请求用于向证书颁发机构申请签发证书,该证书签发请求中包括标识第一微服务实例身份的令牌。
步骤505,证书颁发机构接收到来自第一微服务实例的证书签发请求后,对该证书签发请求中的令牌进行校验,如果校验成功,为该第一微服务实例签发第一证书,并通过证书签发响应将该第一证书返回给第一微服务实例。
本申请中,管理员可将认证系统的根证书和令牌签发中心的证书作为启动参数,启动证书颁发机构。证书颁发机构将使用令牌签发中心的证书来校验第一微服务实例提供的令牌,使用根证书来校验第一微服务实例进行其他请求时提供的证书,以及使用根证书为第一微服务实例签发证书。在一种可能的设计中,证书颁发机构可暴露一个HTTPS接口来接收来自第一微服务实例的证书签发请求。
第一微服务实例在第一次与证书颁发机构进行交互时,可在该证书签发请求的头部中携带令牌以标识自己的身份。证书颁发机构对证书签发请求中的令牌的合法性进行校验,并在令牌校验通过后为第一微服务实例签发一本证书,例如可以是X509证书。第一微服务实例获得证书颁发机构签发的第一证书后,加载该第一证书的信息,应注意,该第一证书只会存在于内存中,不会落盘,以避免认证介质泄露的风险。第一微服务实例在之后与证书颁发机构、配置中心以及其他微服务的微服务实例进行通信时,均可用该第一证书来标识自己的身份。
对于这种第一微服务实例初次向证书颁发机构申请签发证书的情形,证书颁发机构可采用基于令牌的认证方式。证书颁发机构可根据第一微服务实例是否提供了证书,以及请求的头部中是否包含x-access-token字段,来识别这种初次申请证书需要基于令牌的认证方式的情形。也就是说,如果第一微服务实例在与证书颁发机构建立连接的时候没有提供证书,且请求的头部中包含x-access-token字段,则证书颁发机构可确定需要使用基于令牌的认证方式。
示例性地,基于令牌的认证流程可包括如下步骤:步骤1,首先对令牌进行解码,获取Body字段中的aud字段,如果该aud字段中的CA身份描述信息不指向当前CA,则校验失败。步骤2,获取iss字段,根据该iss字段中的令牌签发中心身份描述信息,查找该令牌签发中心对应的公钥,如果没有查找到该令牌签发中心对应的公钥,则校验失败。步骤3,获取iat字段,如果该iat字段中的令牌签发时间晚于当前系统时间,则校验失败。步骤4,获取exp字段,如果该exp字段中的令牌过期时间早于当前系统时间,则校验失败。步骤5,使用步骤2中查找到的该令牌签发中心对应的公钥,对令牌的Header字段和Body字段计算摘要信息,并与令牌的Signature字段进行比较,如果摘要信息与Signature字段不匹配,则校验失败,否则,校验成功。
步骤506,第一微服务实例实时监控第一证书的有效期,在第一证书过期前向证书颁发机构发送证书更新请求,并向证书颁发机构提供第一证书以标识自己的身份,该证书更新请求用于向证书颁发机构申请重新签发证书。
步骤507,证书颁发机构接收到证书更新请求后,对第一微服务实例提供的第一证书进行校验,如果校验成功,则为该第一微服务实例签发新的第二证书,并通过证书更新响应将该第二证书返回给第一微服务实例。
本申请中,第一微服务实例具有证书管理的功能。所述证书管理是指,第一微服务实例在启动之后会自动从证书颁发机构申请签发证书,并实时监控获取到的证书的有效期,在证书过期之前(例如在证书过期之前的24小时),重新向证书颁发机构申请签发证书,并且在成功获取证书后,自动更新证书。而且,第一微服务实例在从证书颁发机构获取到证书后,可采用基于内存的证书存储方式将证书存储在内存中,也就是说,证书全程由第一微服务实例管理并仅存储在内存中,不需要落盘存储,因此可避免认证介质的泄露风险,提高系统安全性。应注意,第一微服务实例证书颁发机构重新申请签发证书时,第一微服务实例需要向证书颁发机构提供自己的旧证书标识自己的身份,而无需再携带令牌。
对于这种第一微服务实例向证书颁发机构申请更新证书的情形,证书颁发机构采用可基于证书的认证方式。证书颁发机构可根据第一微服务实例在请求时是否提供了证书,来识别上述更新证书需要基于证书的认证方式的情形。也就是说,如果第一微服务实例在与证书颁发机构建立连接的时候提供了证书,则证书颁发机构可确定需要用基于证书的认证方式。
校验成功的证书需要满足两个条件:1)证书需要由当前的证书颁发机构签发;2)证书仍在有效期内。如果请求不满足以上两个条件,证书颁发机构可以认为请求为非法请求,并拒绝签发证书。
图6示例性地示出了证书颁发机构接收到的证书签发/更新请求后的认证流程:证书颁发机构在收到请求后,可首先获取客户端(即第一微服务实例)的证书。如果客户端提供了证书,证书颁发机构在确认证书存在后,可校验该证书是否由自己签发以及该证书是否仍在有效期内,如果两者都满足,则认证通过,流程结束。如果客户端没有提供证书,证书颁发机构在确认证书不存在后,可校验请求头部是否包含x-access-token字段,以判断客户端的令牌是否存在。如果不包含x-access-token字段,即令牌不存在,则认证不通过,流程结束。如果包含x-access-token字段,即令牌存在,证书颁发机构可使用Base64解码令牌,并继续校验令牌的各个字段,根据校验情况,决定认证是否通过。
步骤508,第一微服务实例向配置中心发送配置获取请求,并在与配置中心通信建立连接时提供自己的证书。
步骤509,配置中心接收到配置获取请求后,对第一微服务实例提供的证书进行校验,如果校验成功,将系统内所有其他微服务的配置信息通过配置获取响应返回给第一微服务实例。
本申请中,第一微服务实例还具有配置管理的功能。所述配置管理是指,第一微服务实例可定时从配置中心处获取系统内所有其他微服务的配置信息,也就是说,上述步骤508和步骤509可周期性地循环多次执行,以确保配置信息的准确性和实时性。
配置中心用于存储系统内所有微服务的配置信息,并提供HTTPS接口供第一微服务实例下载。管理员可使用认证系统的根证书作为启动参数启动配置中心,配置中心将使用根证书来校验第一微服务实例提供的证书,同时也会将根证书的信息写入到第一微服务的配置信息的security字段中。
但应注意,配置中心仅支持基于证书的认证方式,即第一微服务实例只有在成功从证书颁发机构处获取到证书后,才可以从配置中心下载配置信息,这也要求第一微服务实例在与配置中心建立连接时提供自己的证书。
以第一微服务实例将要访问第二微服务为例,第二微服务的配置信息可包括:标识信息、实例信息、路由信息、合法证书信息。其中,实例信息用于描述发布该第二微服务的IP地址和端口。路由信息用于描述在访问该第二微服务时应该选择哪个微服务实例,即实例选择规则,例如第一微服务实例可以根据该实例选择规则选择与第二微服务实例进行通信。合法证书信息用于指示校验通信对端的证书的方式。如果第一微服务实例访问的第二微服务实例没有提供证书或者提供的证书不符合配置中心下发的合法证书信息,则第一微服务实例可以认为此次通信不安全,并断开连接。
示例性地,配置中心可以提供HTTPS接口,并以JSON的格式向第一微服务实例返回第二微服务的配置信息,第二微服务的配置信息可采用如图7所示的数据格式:
name:是指第二微服务的名称。
endpoints:是指发布第二微服务的各个微服务实例的网络地址。
router:是指选择第二微服务的微服务实例时所依赖的规则。图6中所示的规则是指,在选择微服务实例时,优先选择locality与本机相同的endpoint,如果没有找到,则选择network相同的endpoint,还未找到,则选择isp相同的endpoint,如果以上都未找到,则在所有的endpoint中随机选择一个。
security:是指与第二微服务的微服务实例通信时的认证方式。图6中所示的rootCAs字段记录了签发第二微服务实例的证书的根证书,如果在访问该第二微服务的第二微服务实例时,该第二微服务实例提供的证书不是由该根证书签发,则可认为该第二微服务实例非法。
步骤510,第一微服务实例与第二微服务实例建立通信连接。
该步骤可具体包括:步骤510-1,第一微服务实例向第二微服务实例请求证书;步骤510-2,第二微服务实例向第一微服务实例发送自己的证书;步骤510-3,第一微服务实例对第二微服务实例提供的证书进行校验,校验成功后,向第二微服务实例发送自己的证书;步骤510-4,第二微服务实例对第一微服务实例提供的证书进行校验,校验成功后,二者之间的通信连接建立完成。上述步骤510-1至步骤510-4在图5中暂未示出。
在上述过程中,第一微服务实例是发起请求的一方,也称请求发起者;第二微服务实例是接收请求并提供服务的一方,也称服务提供者。
需要说明的是,请求发起者与服务提供者可按照图8的流程进行互相认证:
步骤801,请求发起者与服务提供者建立连接。
步骤802,请求发起者向服务提供者请求证书。
步骤803,请求发起者校验服务提供者提供的证书是否合法,如果证书校验通过,则执行步骤804。如果服务提供者未返回证书或者返回的证书校验不通过,则认证失败,跳转到步骤808。
证书校验不通过可以是指服务提供者返回的证书的签发者与配置中心下发的配置信息中记录的该微服务的证书签发者不符。
步骤804,请求发起者向服务提供者提供自己的证书。
步骤805,服务提供者校验请求发起者的证书是否合法,如果证书校验通过,则认证过程结束,执行步骤806。如果请求发起者未提供自己的证书或证书不可信,则认证失败,跳转到步骤807。
步骤806,请求发起者与服务提供者开始通信。
步骤807,服务提供者断开连接。
步骤808,请求发起者断开连接。
本申请中,第一微服务实例还具有连接管理的功能。所述连接管理是指,当第一微服务实例通过第二微服务的名称访问第二微服务时,第一微服务实例会自动找到该名称对应的第二微服务的某个微服务实例,例如可以是第二微服务实例,并发起连接。在连接建立阶段,第一微服务实例会校验通信对端的第二微服务实例的证书,如果证书不合法,第一微服务实例可主动断开连接,并尝试该第二微服务的其他微服务实例。在一次请求完成后,第一微服务实例会将连接保留,如果在短时间内还有需要向相同IP端口的第二微服务实例发送请求,第一微服务实例可复用保留的连接,以提升系统性能。此外,第一微服务实例在每次复用连接之前,可再次校验通信对端的证书的有效性,避免向拥有非法或过期证书的目标微服务的实例发送数据。
在建立通信连接之后,第一微服务实例与第二微服务实例可进行业务数据的收发。该步骤可具体包括:第一微服务实例向第二微服务实例发送业务请求,以及第一微服务实例接收来自第二微服务实例的业务响应。
需要说明的是,图5中所示的有关第一微服务实例的动作或步骤或所具有的功能,均可以由内嵌于第一微服务实例中的第一微服务SDK来实现,该第一微服务SDK可以以依赖的方式嵌入在第一微服务实例的业务代码中,负责认证有关的功能。
本申请实施例所提供的技术方案,可以具有如下技术效果:
1)全流程通信信道加密:微服务实例与微服务实例、微服务实例与证书颁发机构、微服务实例与配置中心之间的通信均使用加密信道,可有效避免通信被窃取和篡改的风险。
2)认证介质防泄露:微服务实例与证书颁发机构之间的首次通信认证使用的令牌在极短的时间内便会失效,即使配置文件发生泄露,也不会对系统的安全性造成影响。微服务实例与微服务实例之间的通信使用证书进行认证,证书全程由微服务实例管理并仅存在于内存中,不会存在泄露风险。
3)认证方式具有普适性:基于证书/令牌的认证方式具有普适性,与编程语言、操作系统无关,可以被应用到任何技术体系中。
基于相同的发明构思,本申请实施例还提供一种微服务的证书管理装置,该装置可具有实现上述方法实施例中涉及第一微服务实例或证书颁发机构或令牌签发中心或配置中心或第二微服务实例的功能。
图9示例性示出了本申请实施例提供的一种微服务的证书管理装置的结构示意图,如图9所示,该装置900包括:通信模块910和处理模块920。
示例性地,当该装置作为第一微服务实例,执行图2中所示的方法实施例中的动作或步骤时,通信模块910,用于向证书颁发机构发送证书签发请求,所述证书签发请求中包括令牌签发中心为所述第一微服务实例签发的令牌,所述令牌存储于所述第一微服务实例的启动配置文件中,所述令牌的有效期小于设定阈值。通信模块910,还用于接收来自所述证书颁发机构的证书签发响应。处理模块920,用于通过所述证书签发响应中获取所述证书颁发机构在校验通过所述令牌后为所述第一微服务实例签发的第一证书。
在一种可能的设计中,所述令牌中包括令牌签发中心身份描述信息、所述微服务实例身份描述信息、证书颁发机构身份描述信息、令牌签发时间和令牌过期时间。
在一种可能的设计中,通信模块910,还用于基于所述第一证书,从配置中心获取第二微服务的配置信息;处理模块920,还用于根据所述第二微服务的配置信息,选择所述第二微服务的第二微服务实例并发起连接。
在一种可能的设计中,所述第二微服务的配置信息中包括以下一项或多项信息:实例信息、路由信息、合法证书信息;其中,所述实例信息包括所述第二微服务的各个微服务实例的IP地址和端口,所述路由信息用于指示访问所述第二微服务时的实例选择规则,所述合法证书信息用于校验通信对端的证书。
在一种可能的设计中,通信模块910,还用于在所述第一证书过期前,基于所述第一证书向所述证书颁发机构发送证书更新请求;以及,接收来自所述证书颁发机构的证书更新响应,所述证书更新响应中包括所述证书颁发机构在校验通过所述第一证书后为所述第一微服务实例签发的第二证书。
示例性地,当该装置作为证书颁发机构,执行图2中所示的方法实施例中的动作或步骤时,所述通信模块910,用于接收来自第一微服务的第一微服务实例的证书签发请求,所述证书签发请求中包括令牌签发中心为所述第一微服务实例签发的令牌,所述令牌存储于所述第一微服务实例的启动配置文件中,所述令牌的有效期小于设定阈值;所述处理模块920,用于对所述令牌进行校验,并在校验通过后为所述第一微服务实例签发第一证书;所述通信模块910,还用于向所述第一微服务实例发送证书签发响应,所述证书签发响应中包括所述第一证书。
在一种可能的设计中,所述令牌中包括令牌签发中心身份描述信息、微服务实例身份描述信息、证书颁发机构身份描述信息、令牌签发时间和令牌过期时间。
在一种可能的设计中,所述处理模块920具体用于:如果判断所述证书颁发机构身份描述信息不指向所述证书颁发机构,或者所述令牌签发时间晚于当前系统时间,或者所述令牌过期时间早于所述当前系统时间,或者根据所述令牌签发中心身份描述信息,查找不到所述令牌签发中心对应的公钥,或者根据所述令牌签发中心身份描述信息,查找到所述令牌签发中心对应的公钥后,使用查找到的所述公钥对所述令牌的头字段和体字段计算得到的所述摘要信息与所述令牌的签名字段不匹配,则确认校验不通过,否则校验通过。
在一种可能的设计中,所述通信模块910,还用于接收来自所述第一微服务实例的证书更新请求;所述处理模块920,还用于对所述第一微服务实例在建立连接的过程中提供的所述第一证书进行校验,并在校验通过后为所述第一微服务实例签发第二证书;所述通信模块910,还用于向所述第一微服务实例发送证书更新响应,所述证书更新响应包括所述第二证书。
在一种可能的设计中,所述处理模块920,具体用于如果判断所述第一证书由当前的所述证书颁发机构签发且仍在有效期内,则确认校验通过,否则校验不通过。
基于相同的技术构思,本申请实施例还提供一种计算机设备,该计算机设备可具有实现上述方法实施例中涉及第一微服务实例或证书颁发机构或令牌签发中心或配置中心或第二微服务实例的功能。
图10示例性示出了本申请实施例提供的一种计算机设备的结构示意图。如图10所示,计算机设备1000包括至少一个处理器1001,以及与至少一个处理器连接的存储器1002。本申请实施例不限定处理器1001与存储器1002之间的具体连接介质,图10中处理器1001和存储器1002之间通过总线连接作为实例,所述总线可以分为地址总线、数据总线、控制总线等。
所述存储器1002存储有可被至少一个处理器1001执行的指令,该至少一个处理器1001通过执行存储器1002存储的指令,可以实现上述方法实施例中方法步骤。
所述处理器1001是计算机设备的控制中心,可以利用各种接口和线路连接计算机设备的各个部分,通过运行或执行存储在存储器1002内的指令以及调用存储在存储器1002内的数据,从而进行资源设置。可选的,处理器1001可包括一个或多个处理单元,处理器1001可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器1001中。在一些实施例中,处理器1001和存储器1002可以在同一芯片上实现,在一些实施例中,它们也可以在独立的芯片上分别实现。
所述处理器1001可以是通用处理器,例如中央处理器(CPU)、数字信号处理器、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
所述存储器1002作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器1002可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(Random AccessMemory,RAM)、静态随机访问存储器(Static Random Access Memory,SRAM)、可编程只读存储器(ProgrammableRead Only Memory,PROM)、只读存储器(Read Only Memory,ROM)、带电可擦除可编程只读存储器(Electrically Erasable Programmable Read-OnlyMemory,EEPROM)、磁性存储器、磁盘、光盘等等。存储器1002是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本申请实施例中的存储器1002还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
本申请实施例还提供一种微服务的认证系统,该认证系统中包括令牌签发中心、证书颁发机构以及多个微服务的微服务实例。该认证系统中的各个认证实体可相互配合实现上述方法实施例中所描述的微服务的认证功能。
本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质存储有计算机可读指令,当计算机读取并执行所述计算机可读指令时,使得上述方法实施例中的方法被实现。
本申请实施例还提供一种计算机程序产品,包括计算机可读指令,当计算机可读指令被处理器执行时,使得上述方法实施例中的方法被实现。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (15)
1.一种微服务的证书管理方法,其特征在于,所述方法包括:
第一微服务的第一微服务实例向证书颁发机构发送证书签发请求,所述证书签发请求中包括令牌签发中心为所述第一微服务实例签发的令牌,所述令牌存储于所述第一微服务实例的启动配置文件中,所述令牌的有效期小于设定阈值;
所述第一微服务实例接收来自所述证书颁发机构的证书签发响应,所述证书签发响应中包括所述证书颁发机构在校验通过所述令牌后为所述第一微服务实例签发的第一证书。
2.根据权利要求1所述的方法,其特征在于,所述令牌中包括令牌签发中心身份描述信息、微服务实例身份描述信息、证书颁发机构身份描述信息、令牌签发时间和令牌过期时间。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述第一微服务实例基于所述第一证书,从配置中心获取第二微服务的配置信息;
所述第一微服务实例根据所述第二微服务的配置信息,选择所述第二微服务的第二微服务实例并发起连接。
4.根据权利要求3所述的方法,其特征在于,所述第二微服务的配置信息中包括以下一项或多项信息:实例信息、路由信息、合法证书信息;
其中,所述实例信息包括所述第二微服务的各个微服务实例的IP地址和端口,所述路由信息用于指示访问所述第二微服务时的实例选择规则,所述合法证书信息用于校验通信对端的证书。
5.根据权利要求1至4中任一项所述的方法,其特征在于,所述方法还包括:
所述第一微服务实例在所述第一证书过期前,基于所述第一证书向所述证书颁发机构发送证书更新请求;
所述第一微服务实例接收来自所述证书颁发机构的证书更新响应,所述证书更新响应中包括所述证书颁发机构在校验通过所述第一证书后为所述第一微服务实例签发的第二证书。
6.一种微服务的证书管理方法,其特征在于,所述方法包括:
证书颁发机构接收来自第一微服务的第一微服务实例的证书签发请求,所述证书签发请求中包括令牌签发中心为所述第一微服务实例签发的令牌,所述令牌存储于所述第一微服务实例的启动配置文件中,所述令牌的有效期小于设定阈值;
所述证书颁发机构对所述令牌进行校验,并在校验通过后为所述第一微服务实例签发第一证书;
所述证书颁发机构向所述第一微服务实例发送证书签发响应,所述证书签发响应中包括所述第一证书。
7.根据权利要求6所述的方法,其特征在于,所述令牌中包括令牌签发中心身份描述信息、微服务实例身份描述信息、证书颁发机构身份描述信息、令牌签发时间和令牌过期时间。
8.根据权利要求7所述的方法,其特征在于,所述证书颁发机构对所述令牌进行校验,包括:
如果所述证书颁发机构身份描述信息不指向所述证书颁发机构,或者所述令牌签发时间晚于所述证书颁发机构的当前系统时间,或者所述令牌过期时间早于所述当前系统时间,或者所述证书颁发机构根据所述令牌签发中心身份描述信息,查找不到所述令牌签发中心对应的公钥,或者所述证书颁发机构根据查找到所述令牌签发中心对应的公钥,对所述令牌的头字段和体字段计算得到的摘要信息与所述令牌的签名字段不匹配,则确认校验不通过,否则校验通过。
9.根据权利要求6所述的方法,其特征在于,所述方法还包括:
所述证书颁发机构接收来自所述第一微服务实例的证书更新请求;
所述证书颁发机构对所述第一微服务实例在建立连接的过程中提供的所述第一证书进行校验,并在校验通过后为所述第一微服务实例签发第二证书;
所述证书颁发机构向所述第一微服务实例发送证书更新响应,所述证书更新响应中包括所述第二证书。
10.根据权利要求9所述的方法,其特征在于,所述证书颁发机构对所述第一微服务实例在建立连接的过程中提供的所述第一证书进行校验,包括:
如果所述第一证书由所述证书颁发机构签发且仍在有效期内,则确认校验通过,否则校验不通过。
11.一种微服务的证书管理装置,其特征在于,所述装置包括:
通信模块,用于向证书颁发机构发送证书签发请求,所述证书签发请求中包括令牌签发中心为所述第一微服务实例签发的令牌,所述令牌存储于所述第一微服务实例的启动配置文件中,所述令牌的有效期小于设定阈值;
所述通信模块,还用于接收来自所述证书颁发机构的证书签发响应;
处理模块,用于通过所述证书签发响应中获取所述证书颁发机构在校验通过所述令牌后为所述第一微服务实例签发的第一证书。
12.一种微服务的证书管理装置,其特征在于,所述装置包括:
通信模块,用于接收来自第一微服务的第一微服务实例的证书签发请求,所述证书签发请求中包括令牌签发中心为所述第一微服务实例签发的令牌,所述令牌存储于所述第一微服务实例的启动配置文件中,所述令牌的有效期小于设定阈值;
处理模块,用于对所述令牌进行校验,并在校验通过后为所述第一微服务实例签发第一证书;
所述通信模块,还用于向所述第一微服务实例发送证书签发响应,所述证书签发响应中包括所述第一证书。
13.一种微服务的认证装置,其特征在于,所述装置包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序指令执行如权利要求1至5中任一项所述的方法,或执行如权利要求6至10中任一项所述的方法。
14.一种计算机存储介质,其特征在于,所述计算机存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行如权利要求1至5中任一项所述的方法,或者执行如权利要求6至10中任一项所述的方法。
15.一种微服务的认证系统,其特征在于,所述系统包括令牌签发中心、证书颁发机构、以及多个微服务的微服务实例;其中,
所述令牌签发中心,用于为每个所述微服务实例签发令牌,所述令牌存储于所述微服务实例的启动配置文件中,所述令牌的有效期小于设定阈值;
所述微服务实例,用于基于所述令牌向所述证书颁发机构申请签发证书,并接收来自所述证书颁发机构的证书,所述证书用于所述微服务实例后续与所述证书颁发机构或其它微服务的微服务实例进行网络通信时的信道加密和身份认证;
所述证书颁发机构,用于对所述微服务实例的所述令牌进行校验,并在校验通过后为所述微服务实例签发证书。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210350970.9A CN114826608B (zh) | 2022-04-02 | 2022-04-02 | 一种微服务的证书管理方法、装置及认证系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210350970.9A CN114826608B (zh) | 2022-04-02 | 2022-04-02 | 一种微服务的证书管理方法、装置及认证系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114826608A true CN114826608A (zh) | 2022-07-29 |
CN114826608B CN114826608B (zh) | 2024-08-13 |
Family
ID=82533543
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210350970.9A Active CN114826608B (zh) | 2022-04-02 | 2022-04-02 | 一种微服务的证书管理方法、装置及认证系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114826608B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018157247A1 (en) * | 2017-02-28 | 2018-09-07 | Bioconnect Inc. | System and method for securing communications with remote security devices |
CN108769043A (zh) * | 2018-06-06 | 2018-11-06 | 中国联合网络通信集团有限公司 | 可信应用认证系统和可信应用认证方法 |
CN112822678A (zh) * | 2019-10-31 | 2021-05-18 | 华为技术有限公司 | 一种服务化架构授权的方法 |
CN113454971A (zh) * | 2019-02-28 | 2021-09-28 | 思科技术公司 | 基于远程智能nic的服务加速 |
CN113497707A (zh) * | 2020-03-18 | 2021-10-12 | 大唐移动通信设备有限公司 | 一种应用证书申请方法及装置 |
-
2022
- 2022-04-02 CN CN202210350970.9A patent/CN114826608B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018157247A1 (en) * | 2017-02-28 | 2018-09-07 | Bioconnect Inc. | System and method for securing communications with remote security devices |
CN108769043A (zh) * | 2018-06-06 | 2018-11-06 | 中国联合网络通信集团有限公司 | 可信应用认证系统和可信应用认证方法 |
CN113454971A (zh) * | 2019-02-28 | 2021-09-28 | 思科技术公司 | 基于远程智能nic的服务加速 |
CN112822678A (zh) * | 2019-10-31 | 2021-05-18 | 华为技术有限公司 | 一种服务化架构授权的方法 |
CN113497707A (zh) * | 2020-03-18 | 2021-10-12 | 大唐移动通信设备有限公司 | 一种应用证书申请方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN114826608B (zh) | 2024-08-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11943376B1 (en) | Template based credential provisioning | |
CN107483509B (zh) | 一种身份验证方法、服务器及可读存储介质 | |
CN110912707B (zh) | 基于区块链的数字证书处理方法、装置、设备及存储介质 | |
US9621355B1 (en) | Securely authorizing client applications on devices to hosted services | |
US11196745B2 (en) | Blockchain-based account management | |
CN101027676B (zh) | 用于可控认证的个人符记和方法 | |
US11101978B2 (en) | Establishing and managing identities for constrained devices | |
CN113661681B (zh) | 向远程服务器进行认证的系统和方法 | |
CN112955884B (zh) | 用于认证的设备、在网络中登记设备的方法 | |
US12045355B2 (en) | Cryptographic trust enabled devices of cybersecurity systems | |
US20200235921A1 (en) | Method and system for recovering cryptographic keys of a blockchain network | |
CN109417545A (zh) | 用于下载网络接入简档的技术 | |
US11470075B2 (en) | Systems and methods for provisioning network devices | |
CN110808991B (zh) | 一种安全通信连接的方法、系统、电子设备及存储介质 | |
CN112468301B (zh) | 一种基于区块链的云平台认证的方法、系统、设备及介质 | |
CN112699343A (zh) | 一种软件完整性保护、校验的方法及装置 | |
WO2023093500A1 (zh) | 一种访问验证方法及装置 | |
CN113872932A (zh) | 微服务间的接口鉴权方法、系统、终端及存储介质 | |
CN113301107A (zh) | 节点计算平台及其实现方法、可信云平台实现方法 | |
US20210135864A1 (en) | Private key updating | |
TW201717084A (zh) | 用於app認證的被認證端、輔助認證端、認證端及app認證的系統和方法 | |
CN114826608B (zh) | 一种微服务的证书管理方法、装置及认证系统 | |
CN114710362A (zh) | 基于区块链的身份认证方法、装置及电子设备 | |
CN111723347B (zh) | 身份认证方法、装置、电子设备及存储介质 | |
CN109936522B (zh) | 设备认证方法及设备认证系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |