Fabric通过cryptogen生成证书目录内容解析

本文主要参考了搭建基于hyperledger fabric的联盟社区(八) --Fabric证书解析,原文更为详细,本文主要方便自查

Fabric可以通过cryptogen生成网络所需的所有证书及密钥,现将各目录内容叙述如下。

生成证书配置

用于生成证书目录的配置文件crypto-config.yaml内容如下所示

# "OrdererOrgs" - Definition of organizations managing orderer nodes
OrdererOrgs:
  - Name: Mango
    Domain: mango.com
    # Specs is an array of Spec entries.  Each Spec entry consists of two fields : Hostname and CommonName
    Specs:
      - Hostname: orderer
# "PeerOrgs" - Definition of organizations managing peer nodes
PeerOrgs:
  - Name: Mango
    Domain: mango.com
    # Allows for the definition of 1 or more hosts that are created sequentially
    # from a template. By default, this looks like "peer%d" from 0 to Count-1.
    # You may override the number of nodes (Count), the starting index (Start)
    # or the template used to construct the name (Hostname).
    Template:
      Count: 2

证书目录解析

通过下面命令根据上述配置生成证书

mkdir -p crypto-config
./bin/cryptogen generate --config=./crypto-config.yaml

每个目录和对应文件的功能如下:

crypto-config
├── ordererOrganizations
│   └── mango.com # domain
│       ├── ca
│       │   ├── ca.mango.com-cert.pem
│       │   └── ed9854ea794ed178750ab5fff0b8f7a4c4938721e85de25a65e171dac4dadf41_sk
│       ├── msp
│       │   ├── admincerts
│       │   │   └── [email protected]
│       │   ├── cacerts
│       │   │   └── ca.mango.com-cert.pem
│       │   └── tlscacerts
│       │       └── tlsca.mango.com-cert.pem
│       ├── orderers
│       │   └── orderer.mango.com
│       │       ├── msp
│       │       │   ├── admincerts
│       │       │   │   └── [email protected]
│       │       │   ├── cacerts
│       │       │   │   └── ca.mango.com-cert.pem
│       │       │   ├── keystore
│       │       │   │   └── b1ee6269b624746f682843f566dcfdbb9b1318ea36d605becc13843f52d13e2c_sk
│       │       │   ├── signcerts
│       │       │   │   └── orderer.mango.com-cert.pem
│       │       │   └── tlscacerts
│       │       │       └── tlsca.mango.com-cert.pem
│       │       └── tls
│       │           ├── ca.crt
│       │           ├── server.crt
│       │           └── server.key
│       ├── tlsca
│       │   ├── 30fe7e37c6b416049d567b99d07d4d0fca282d28cf51819a8ba9cb12a4b1b5c1_sk
│       │   └── tlsca.mango.com-cert.pem
│       └── users
│           └── [email protected]
│               ├── msp
│               │   ├── admincerts
│               │   │   └── [email protected]
│               │   ├── cacerts
│               │   │   └── ca.mango.com-cert.pem
│               │   ├── keystore
│               │   │   └── 749735ce27f18879efa1ffdf76bf9d800ccb0298c826cee2c2d68217eb731610_sk
│               │   ├── signcerts
│               │   │   └── [email protected]
│               │   └── tlscacerts
│               │       └── tlsca.mango.com-cert.pem
│               └── tls
│                   ├── ca.crt
│                   ├── client.crt
│                   └── client.key
└── peerOrganizations
    └── org1.mango.com
        ├── ca  # 存放组织的根证书和对应的私钥文件,默认采用EC算法,证书为自签名。组织内的实体将基于该证书作为证书根。
        │   ├── 2c3c2cde48c8f1b5eb0fd54e0b1865d6b5bc3269ebba8cb5ac5a7dfbbd303367_sk
        │   └── ca.org1.mango.com-cert.pem
        ├── msp # 存放代表该组织的身份信息。
        │   ├── admincerts # 组织管理员的身份验证证书,被根证书签名。
        │   │   └── [email protected]
        │   ├── cacerts # 组织的根证书,同ca目录下文件。
        │   │   └── ca.org1.mango.com-cert.pem
        │   └── tlscacerts # 用于TLS的ca证书,自签名。
        │       └── tlsca.org1.mango.com-cert.pem
        ├── peers # 存放属于该组织的所有peer节点。
        │   ├── peer0.org1.mango.com # 第一个peer的信息,包括其msp证书和TLS证书两类。
        │   │   ├── msp
        │   │   │   ├── admincerts # 组织管理员的身份验证证书。peer将基于这些证书来认证交易签署这是否为管理员身份。
        │   │   │   │   └── [email protected]
        │   │   │   ├── cacerts # 组织的根证书.
        │   │   │   │   └── ca.org1.mango.com-cert.pem
        │   │   │   ├── keystore # 本节点的身份私钥,用来签名。
        │   │   │   │   └── d35fbb340c84ad06ffd6d58addaf694a62e23adf53066b9a287f86edbf6dd476_sk
        │   │   │   ├── signcerts # 验证本节点签名的证书,被组织根证书签名。
        │   │   │   │   └── peer0.org1.mango.com-cert.pem
        │   │   │   └── tlscacerts # TLS连接用的身份证书,即组织TLS证书。
        │   │   │       └── tlsca.org1.mango.com-cert.pem
        │   │   └── tls # 存放tls相关的证书和私钥
        │   │       ├── ca.crt # 组织的根证书
        │   │       ├── server.crt # 验证本节点签名的证书,被组织根证书签名。
        │   │       └── server.key # 本节点的身份私钥,用来签名。
        │   └── peer1.org1.mango.com # 第二个peer的信息,结构类似。(省略)
        │       ├── msp
        │       │   ├── admincerts
        │       │   │   └── [email protected]
        │       │   ├── cacerts
        │       │   │   └── ca.org1.mango.com-cert.pem 
        │       │   ├── keystore
        │       │   │   └── ecfeefdab7f95113064a00227d7af5cb3ae448ec1334a932f768010b95dc32f3_sk
        │       │   ├── signcerts
        │       │   │   └── peer1.org1.mango.com-cert.pem
        │       │   └── tlscacerts
        │       │       └── tlsca.org1.mango.com-cert.pem
        │       └── tls
        │           ├── ca.crt
        │           ├── server.crt
        │           └── server.key
        ├── tlsca 存放组织tls连接用的根证书和私钥文件。(TLS是传输层安全协议,其实就是SSL,现在叫TLS了)
        │   ├── 65b65931318b4aa19ae15d1da75413c68371d1506237311fc7244c8e46c1ba8a_sk
        │   └── tlsca.org1.mango.com-cert.pem # TLS根证书
        └── users 存放属于该组织的用户的实体。
            └── [email protected] # 管理员用户的信息,包括其msp证书和tls证书两类。
                ├── msp
                │   ├── admincerts # 组织根证书作为管理者身份验证证书。
                │   │   └── [email protected] 
                │   ├── cacerts # 组织的根证书.
                │   │   └── ca.org1.mango.com-cert.pem 
                │   ├── keystore # 本用户的身份私钥,用来签名。
                │   │   └── 22e70042f7dd79f35ea92a285d2377a673163805f85c9bf160c87de82db52a4c_sk
                │   ├── signcerts # 管理员用户的身份验证证书,被组织根证书签名。要被某个Peer认可,则必须放到该peer的msp/admincerts下。
                │   │   └── [email protected]
                │   └── tlscacerts # TLS连接用的身份证书,即组织TLS证书。
                │       └── tlsca.org1.mango.com-cert.pem 
                └── tls # 存放tls相关的证书和私钥
                    ├── ca.crt # 组织的根证书
                    ├── client.crt # 管理员的用户身份验证证书,被组织根证书签名。
                    └── client.key # 管理员用户的身份私钥,用来签名。

猜你喜欢

转载自www.cnblogs.com/laolieren/p/fabric_cryptogen_certificates_content.html