证书说明
概述
天玄采用面向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