cryptogen生成的证书详解

crypto-config #

用cryptogen生成证书后

peerOrganizations #

本文以peerOrganizations组织树为例,打开该目录,可以看到如下两个组织的证书目录:

org1.example.com #

每个组织中又有如下目录:

每个组织都会生成单独的根证书。

ca #

ca :存放了组织的根证书和对应的私钥文件,采用的是EC算法,证书为自签名(自已签发自己的公钥)。组织内的实体将基于该证书作为证书根。

map #

msp:存放代表该组织的身份信息。

(1)admincerts:被根证书签名的组织管理员的身份验证证书。

(2)cacerts:组织的根证书,和ca目录下的文件相同。

(3)tlscacerts:用于TLS的ca证书,证书为自签名。

peer #

peers:存放该组织下所有peer节点的证书:

peer0.org1.example.com #

每个peer节点的证书结构都是相同的,我们以peer0为例:

msp: #

​ admincerts:组织管理员的身份验证证书,用于验证交易签名者是否为管理员身份。

​ cacerts:存放组织的根证书。

​ keystore:本节点的身份私钥,用来签名。

​ signcerts: 验证本节点签名的证书,被组织根证书签名。

​ tlscacerts:TLS连接用的身份证书,即组织TLS证书。

tls: #

存放tls相关的证书和私钥。

​ ca.crt:组织的根证书。

​ server.crt:验证本节点签名的证书,被组织根证书签名。

​ server.key:本节点的身份私钥,用来签名。

users #

users:存放属于该组织的用户实体。

Admin@org1.example.com #

Admin:管理员用户的信息,包括其msp证书和tls证书。

msp: #

​ admincerts:管理员身份证书。

​ cacerts:存放组织的根证书。

​ keystore:本用户的身份私钥,用来签名。

​ signcerts: 管理员用户的身份验证证书,由组织根证书签名,要放到Peer的msp/admincerts下才会被这个Peer认可。

​ tlscacerts:TLS连接用的身份证书,即组织TLS证书。

tls: #

存放TLS相关的证书和私钥。

​ ca.crt:组织的根证书。

​ server.crt: 管理员用户的身份验证证书,由组织根证书签名。

​ server.key:管理员的身份私钥,用来签名。

User1: #

第一个用户的信息,结构和admin相同,包括msp证书和tls证书。

这些身份文件随后可以分发到对应的Orderer节点和Peer节点上,并放到对应的MSP路径下,用于在交易时进行签名及验证。