Published on

fabric 证书详解

Authors

概念

先解释几个概念

  • CA-证书颁发机构(CA, Certificate Authority)主要作用就是发证书。CA百科

  • fabric中 CA证书 即 CA的根证书,可以理解成第一个证书,其他证书都是又它进行签发,签发的其他证书中,可以通过证书链进行溯源到根证书,保证安全性。

  • fabric中 TLS-CA证书 即 用于TLS加密的根证书,同上,不过这个主要用于加密通信,跟fabric核心东西没啥太大关系。参考https的理解。 https,ssl,tls理解。

fabric有多重证书签发模式,所以得先理解pki证书链的东西,才能慢慢理解fabric的证书结构。 fabric主要有两类,一类是orderer,一类是org。其实两类结构差不多,我以org来举例。 以下是cryptogen这个工具生成的证书目录结构

    ├── org1.example.com 组织1根目录
    │   ├── ca   组织根证书,包含私钥---该组织其他证书都由它生成
    │   ├── msp 这个记录的组织需要用到的证书
    │   │   ├── admincerts 管理员证书 其实就是Users里面admin的证书,从某个版本取消了
    │   │   ├── cacerts   组织根证书
    │   │   └── tlscacerts tlsca的根证书
    │   ├── peers 记录该org中的用户,记住所有证书都由org的CA签发
    │   │   ├── peer0.org1.example.com
    │   │   │   ├── msp
    │   │   │   │   ├── admincerts 管理员证书 其实就是Users里面admin的证书,从某个版本取消了
    │   │   │   │   ├── cacerts       组织根证书
    │   │   │   │   ├── keystore    该用户的私钥
    │   │   │   │   ├── signcerts    该用户的证书
    │   │   │   │   └── tlscacerts    tlsca根证书 sdk传入这个证书是将这个ca机构加入可信机构列表
    │   │   │   └── tls   这里包含了tlsca根证书还有分发给peer的证书和私钥,真正用于tls通信
    │   ├── tlsca  该组织的tlsca根证书和私钥
    │   └── users
    │       ├── Admin@org1.example.com  用户目录,很多东西跟上面类似。
    │       │   ├── msp
    │       │   │   ├── admincerts
    │       │   │   ├── cacerts
    │       │   │   ├── keystore
    │       │   │   ├── signcerts
    │       │   │   └── tlscacerts
    │       │   └── tls  这个暂时没发现有什么用,用户进行tls加密通信的时候,是作为客户端

fabric可以又cryptogen这个工具,生成CA证书,TLS-CA证书 注意CA证书和TLSCA证书其实可以一样的,为了安全性是弄成不一样的。 org和orderer的证书也是可以一样的,为了安全性,都是不一样的。

fabric-ca server 签发证书

这个相当于cryptogen工具,cryptogen工具根据配置一下子生成了很多证书,ca-server就需要手动生成证书。 这个CA可以作为org的CA也可作为orderer的CA进行签发。 还可以签发TLSCA证书,为了安全性,根证书需要不一样,所以可能要搭建多个ca-server进行证书分发。

我目前这个网络先用cryptogen生成org,orderer和tls的ca证书, 再搭建ca-server指定org的CA的根证书,对该org的用户证书进行生成。