不使用Fabric CA手动添加Hyperledger Fabric新管理员用户的方法问询
手动添加新管理员到Hyperledger Fabric网络(无Fabric CA)
没问题,我来给你一步步讲怎么完成这个操作,前提是你已经生成好新用户的加密材料(私钥、签名证书等)并放到了对应目录:
1. 将新管理员证书加入组织MSP的管理员证书集合
Fabric识别管理员身份的核心是组织MSP的admincerts目录,只有证书在这里的用户才会被视为该组织的管理员。
- 找到你的组织MSP根目录(比如
/opt/gopath/src/github.com/hyperledger/fabric/peer/organizations/org1.example.com/msp),把新管理员的签名证书(通常是cert.pem)复制到admincerts子目录下。 - 如果是多节点部署,一定要同步更新所有属于该组织的peer节点、orderer节点的MSP
admincerts目录——不然部分节点会不认可这个新管理员的身份。
2. 确认通道ACL配置(按需调整)
默认情况下,Fabric通道的ACL规则已经允许组织MSP管理员执行链码升级这类操作。如果你的网络没有自定义过ACL,这一步可以直接跳过;如果有自定义配置,需要确保新管理员的身份被包含在权限规则里:
- 先导出当前通道的配置块:
peer channel fetch config config_block.pb -o orderer.example.com:7050 -c mychannel --tls --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem - 将protobuf格式的配置转成JSON:
configtxlator proto_decode --input config_block.pb --type common.Block --output config_block.json jq .data.data[0].payload.data.config config_block.json > config.json - 打开
config.json,找到/Channel/Application/ACLs节点,检查比如/Channel/Application/LifecycleChaincodeUpgrade这类权限项,确保其值是类似OR('Org1MSP.admin', 'Org2MSP.admin')的规则(包含你的组织MSP管理员角色)。 - 之后按照标准的通道配置更新流程,将修改后的配置重新编码、生成更新交易并提交到通道即可。
3. 验证新管理员的权限
配置完成后,用新管理员的身份配置客户端环境,测试权限是否生效:
- 设置环境变量指向新管理员的MSP目录:
export CORE_PEER_MSPCONFIGPATH=/path/to/new/admin/msp export CORE_PEER_LOCALMSPID="Org1MSP" export CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/organizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt - 执行一个需要管理员权限的操作,比如查询通道信息或者发起链码升级:
如果命令能成功执行,说明新管理员的身份已经被网络认可。peer channel getinfo -c mychannel --tls --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem
额外注意事项
- 确保新管理员的MSP目录结构正确:必须包含
cacerts(组织CA根证书)、keystore(私钥文件)、signcerts(签名证书)这几个核心子目录,结构要和组织默认的管理员MSP目录一致。 - 如果要添加的是orderer组织的管理员,需要把证书同步到所有orderer节点的MSP
admincerts目录下。
内容的提问来源于stack exchange,提问作者Ion Ionascu
相关产品推荐
相关产品推荐

