证书说明

概述

天玄采用面向CA的节点准入机制,支持任意多级的证书结构,保障信息保密性、认证性、完整性、不可抵赖性。

天玄使用x509协议的证书格式,根据现有业务场景,默认采用三级的证书结构,自上而下分别为链证书、机构证书、节点证书。

每条链拥有一个链证书及对应的链私钥,链私钥由联盟链委员会共同管理。联盟链委员会可以根据机构的证书请求文件,使用链私钥签发机构证书。

机构私钥由机构管理员持有,可以对机构下属节点签发节点证书。

节点证书是节点身份的凭证,用于与其他持有合法证书的节点间建立SSL连接,并进行加密通讯。

天玄节点运行时的文件后缀介绍如下:

.key

私钥文件

.crt

证书文件

.csr

证书请求文件

角色定义

天玄证书结构中,共有三种角色,分别是联盟链委员会管理员、机构、节点。

1)联盟链委员会

联盟链委员会负责管理链私钥,并根据机构的证书请求文件,为机构颁发机构证书。

联盟链委员会管理文件如下:

ca.crt # 链证书
ca.key # 链私钥

注意:节点建立 TLS 链接时,只有拥有相同链证书ca.crt的节点才可建立连接。

2)机构

机构管理员管理机构私钥,可以颁发节点证书。

机构管理员管理文件如下:

3)节点

节点保存链证书、机构证书、节点证书和私钥,用于建立节点间 TLS 链接。

证书生成流程

注意:需要安装好 GmSSL-v2,可参考节点应用安装部分

证书生成流程如下

1)生成链证书

联盟链委员会使用openssl命令请求链私钥ca.key,根据ca.key生成链证书ca.crt

2)生成机构证书

机构管理员使用openssl命令生成机构私钥agency.key,然后生成机构证书请求文件agency.csr并发送给联盟链委员会。联盟链委员会使用链私钥ca.key,根据得到机构证书请求文件agency.csr生成机构证书agency.crt,并将机构证书发送给对应机构管理员。

配置文件cert.cnf的内容格式如下:

3)生成节点证书

节点生成私钥node.key和证书请求文件node.csr。而后机构管理员使用私钥agency.key为证书请求文件node.csr颁发证书。

而后将多级证书合并成证书链文件chain.crt

4)生成节点密钥库文件

由于 java 建立 tls 链接需要读取 keystore 和 truststore 文件,因此,需要将节点私钥、节点/机构/链证书 转换成 jks 文件。

节点证书续期操作

当证书过期时,需要用户使用当前节点私钥重新申请证书,操作如下:

1)节点将node.csr发送给所属机构,机构管理者使用机构私钥重新签发节点证书

2)节点收到更新后的节点证书,更新本地密钥文件

3)将生成的节点密钥库文件添加至节点对应目录下,如node0~/thanos-chain/node0/resource/tls目录

三级证书续期流程

当整条链的证书均已过期时,需要重新对整条链的证书进行续期操作,续期证书的OpenSSL命令与证书生成流程基本相同,简要步骤如下:

1)使用链私钥ca.key重新签发链证书ca.crt

2)使用链私钥ca.key和链证书ca.crt对机构证书请求文件agency.csr签发得到机构证书agency.crt

3)使用机构私钥agency.key和机构证书agency.crt对证书请求文件node.csr签发得到节点证书node.crt

4)使用新生成的节点私钥node.key以及 节点证书、机构证书和链证书组成证书链文件chain.crt,并替换节点/resource/tls目录下的旧文件。

Last updated