Hyperledger配置文件之crypto-config文件详解

Hyperledger配置文件crypto-config详解

crypto-config是hyperledger用来生成各种证书(x509 证书)的配置文件,相关的证书有各个节点的MSP证书,各个节点通讯使用的TLS证书,以及各个用户的证书。

fabric提供了Cryptogen工具来通过“ crypto-config.yaml”文件指定的网络拓扑,
生成证书库。每个组织都有一个唯一的根证书(ca-cert),
该组织下的所有证书都由该根证书签发。
Fabric中所有的交易和通信由实体的私钥(keystore)签名,
然后通过公钥(signcerts)进行验证。

x509 证书

要了解该文件到底配置了什么,就需要大概知道x509证书中到底包含哪些信息。
使用OpenSSL对任一证书解码
Hyperledger配置文件之crypto-config文件详解_第1张图片
即可看到证书信息和证书颁发者的信息
Hyperledger配置文件之crypto-config文件详解_第2张图片
Hyperledger配置文件之crypto-config文件详解_第3张图片

此外证书中还包含有主体的公钥信息。

配置文件主要结构

配置文件主要分为两部分,分别配置order节点的证书及peer节点
的证书。

  • 一个简单的order单节点定义示例
    OrdererOrgs:
     - Name: Orderer
       Domain: example.com
       Specs:
         - Hostname: orderer
    
  • 一个简单的peer单节点定义示例
    PeerOrgs::
      - Name: Org1
        Domain: org1.example.com
        Template:
          Count: 1
        Users:
          Count: 1
    

设置项详解

  1. order节点

    • Name 只用作标识
    • Domain 配置了生成证书的域
    • Specs 配置了证书的名

    Domain和Specs合起来就是生成的证书主体的名称,即CN字段。
    Specs可以配置多个,Cryptogen会为每个Spec生成一个MSP证书和一个TLS证书。

  2. peer节点

    • Name和Domain和order相同
    • Count 定义了peer节点的个数。和order节点不同,peer节点的域名由templete默认配置。
      规则为"peer%d" 其中%d由0到Count-1.如果Count为2,域名即为peer0.{{Domain}}和peer1.{{Domain}}
    • Users 配置了非管理员用户的个数(管理员的证书默认生成)

证书生成

使用命令

cryptogen generate --config=./crypto-config.yaml

生成证书,该命令在同级目录下生成crypto-config文件夹。该文件夹下按组织的形式存放了各类证书。

crypto-config文件夹详解

Hyperledger配置文件之crypto-config文件详解_第4张图片
crypto-config文件加看起来复杂,其实都由规律。

  1. 包含ca的证书都是根证书,它是证书链的根,它的主体和签发者都是自己。
    每个组织都有自己的根证书。其他证书都是由根证书直接或间接签发。
  2. 每个证书组织都由两个根证书,分别用于MSP(成员身份管理)和TLS(数据通信)。
    同时每个节点和用户也有两套证书。

通过OpenSSL工具对证书解析可以看到。

根证书的签发者和主体均为自己

如ca.org1.example.com-cert.pem
Hyperledger配置文件之crypto-config文件详解_第5张图片

其他子证书均由根证书颁发

如peer0.org1.example.com-cert.pem
Hyperledger配置文件之crypto-config文件详解_第6张图片

你可能感兴趣的:(fabric)