- Published on
fabric 证书详解
- Authors
- Name
- JiGu
- @crypto20x
概念
先解释几个概念
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的用户证书进行生成。