Fabric-CA生产环境部署

TLS CA服务启动及证书生成

小韦云科技-区块链+小程序+公众号+商城+分销+直播+企业官网+外贸电商-为您提供优质的开发服务-电话/微信联系:18123611282

要配置的网络全貌,不同颜色CA证书代表不同的CA服务端发的证书

其中白色部分就是本节要实现的TLS证书

启动所有与CA相关的容器

由于官网给的ca容器配置文件直接执行会报错,所以我根据实际成功运行的情况把它拆分和修改,具体看下面的操作

cd ~/test-ca
docker-compose -f ca-all.yml up -d

ca-all.yml 可从这里下载,它包括下面几个容器
ca-tls: 用于生成HTTPS证书的TLS CA根容器
rca-org0:组织0的CA容器
rca-org1:组织1的CA容器
rca-org2:组织2的CA容器
cli-org1:连接到组织1节点1的CLI容器
cli-org2:连接到组织2节点1的CLI容器

设置TLS CA

由于CA也是以服务端/客户端(S/B)模式运行,上一步启动的容器就是CA的服务端,下面的操作都是在CA在客户端上运行。正常情况服务端和客户端是部署在分开的两台电脑,官方的手册也是假设在这种情况下配置。因为是分别在不同的电脑上,因此需要把服务端生成的证书自己手工下载到客户端的电脑上,如手册所示

所以下面所有涉及的证书默认都是你已经下载了相关的证书。但我这次是同一台电脑上运行所有的服务(即CA服务端,客户端,排序节点,所有组织的peer节点都部署同一个电脑上),因此我在下面的命令都采用复制命令实现手册里的下载步骤(其实也可以直接使用服务端的证书,只需要修改客户端的引用证书名称,但这样与官方手册差异太多,也不方便我们理解其运行原理)

生成各节点的TLS CA证书

  • 四个peer节点的TLS证书
  • 一个排序节点的TLS证书
# 复制证书给客户端使用
cp /opt/hyperledger/tls-ca/crypto/ca-cert.pem /opt/hyperledger/tls-ca/crypto/tls-ca-cert.pem

export FABRIC_CA_CLIENT_TLS_CERTFILES=/opt/hyperledger/tls-ca/crypto/tls-ca-cert.pem
export FABRIC_CA_CLIENT_HOME=/opt/hyperledger/tls-ca/admin
fabric-ca-client enroll -d -u https://tls-ca-admin:tls-ca-adminpw@0.0.0.0:7052
fabric-ca-client register -d --id.name peer1-org1 --id.secret peer1PW --id.type peer -u https://0.0.0.0:7052
fabric-ca-client register -d --id.name peer2-org1 --id.secret peer2PW --id.type peer -u https://0.0.0.0:7052
fabric-ca-client register -d --id.name peer1-org2 --id.secret peer1PW --id.type peer -u https://0.0.0.0:7052
fabric-ca-client register -d --id.name peer2-org2 --id.secret peer2PW --id.type peer -u https://0.0.0.0:7052
fabric-ca-client register -d --id.name orderer1-org0 --id.secret ordererPW --id.type orderer -u https://0.0.0.0:7052

生成各组织和各节点的CA证书

上面是注册用于HTTPS访问的TLS证书,下面是注册各组织和各节点本身的身份证书,相当于它们用来互相沟通的身份证

在Org0上注册以下身份:

  • 排序节点证书(orderer1-org0)
  • 组织0的管理员证书(admin-org0)

按手册说明,这次客户端使用的证书刚好与服务端生成的证书是一样的,因此不需要复制(下同)

export FABRIC_CA_CLIENT_TLS_CERTFILES=/opt/hyperledger/org0/ca/crypto/ca-cert.pem
export FABRIC_CA_CLIENT_HOME=/opt/hyperledger/org0/ca/admin
fabric-ca-client enroll -d -u https://rca-org0-admin:rca-org0-adminpw@0.0.0.0:7053
fabric-ca-client register -d --id.name orderer1-org0 --id.secret ordererpw --id.type orderer -u https://0.0.0.0:7053
fabric-ca-client register -d --id.name admin-org0 --id.secret org0adminpw --id.type admin --id.attrs "hf.Registrar.Roles=client,hf.Registrar.Attributes=*,hf.Revoker=true,hf.GenCRL=true,admin=true:ecert,abac.init=true:ecert" -u https://0.0.0.0:7053

注意,由于客户端是向组织1的CA服务端请求生成认证,而不是TLS的CA服务端,因此FABRIC_CA_CLIENT_TLS_CERTFILES需要的TLS证书是组织1的CA服务端生成的证书。也就是说要连接哪个CA服务端,就要使用哪个服务端的TLS证书

在Org1上注册以下身份:

  • 对等1(peer1-org1)
  • 对等2(peer2-org1)
  • 管理员(admin1-org1)
  • 最终用户(user-org1)
export FABRIC_CA_CLIENT_TLS_CERTFILES=/opt/hyperledger/org1/ca/crypto/ca-cert.pem
export FABRIC_CA_CLIENT_HOME=/opt/hyperledger/org1/ca/admin
fabric-ca-client enroll -d -u https://rca-org1-admin:rca-org1-adminpw@0.0.0.0:7054
fabric-ca-client register -d --id.name peer1-org1 --id.secret peer1PW --id.type peer -u https://0.0.0.0:7054
fabric-ca-client register -d --id.name peer2-org1 --id.secret peer2PW --id.type peer -u https://0.0.0.0:7054
fabric-ca-client register -d --id.name admin-org1 --id.secret org1AdminPW --id.type user -u https://0.0.0.0:7054
fabric-ca-client register -d --id.name user-org1 --id.secret org1UserPW --id.type user -u https://0.0.0.0:7054

在Org2上注册以下身份

  • 对等1(peer1-org2)
  • 对等2(peer2-org2)
  • 管理员(admin1-org2)
  • 最终用户(user-org2)
export FABRIC_CA_CLIENT_TLS_CERTFILES=/opt/hyperledger/org2/ca/crypto/ca-cert.pem
export FABRIC_CA_CLIENT_HOME=/opt/hyperledger/org2/ca/admin
fabric-ca-client enroll -d -u https://rca-org2-admin:rca-org2-adminpw@0.0.0.0:7055
fabric-ca-client register -d --id.name peer1-org2 --id.secret peer1PW --id.type peer -u https://0.0.0.0:7055
fabric-ca-client register -d --id.name peer2-org2 --id.secret peer2PW --id.type peer -u https://0.0.0.0:7055
fabric-ca-client register -d --id.name admin-org2 --id.secret org2AdminPW --id.type user -u https://0.0.0.0:7055
fabric-ca-client register -d --id.name user-org2 --id.secret org2UserPW --id.type user -u https://0.0.0.0:7055

本文由小韦云原创,转载请注明出处:https://bctos.cn/doc/14/1905,否则追究其法律责任

关键词:TLS CA fabric-ca

广告位招商