用Fabric CA替换Cryptogen生成的证书

时间:2019-10-30 22:28:21

标签: hyperledger-fabric hyperledger hyperledger-fabric-ca raft

我正在尝试用生产中的Fabric-CA生成的证书替换由cryptogen生成的peerOrg证书。这变得很复杂,因为我无法创建其他渠道或拆除网络以换出证书。建议我使用crytopgen生成的根证书生成fabric-ca证书,并更新通道配置。

但是,使用fabric-ca生成的msp更新通道配置时出现错误(错误在下面说明)。我将不胜感激任何建议或建议,坚持了数周。

"Error: got unexpected status: BAD_REQUEST -- error applying config update to existing channel 'example-channel': error authorizing update: error validating DeltaSet: policy for [Value]  /Channel/Application/ExampleMSP/MSP not satisfied: signature set did not satisfy policy"

以下是我采取的步骤,

1。)使用cryptogen生成的根证书生成了对等证书。

2。)将文件路径从密码生成的MSP更改为Fabric-CA生成的MSP 旧宣言:     -&示例         名称:ExampleMSP         ID:范例MSP         MSPDir:crypto-config / peerOrganizations / stp.example.com / msp         锚点:             -主持人:peer0.stp.example.com

新声明:     -&示例         名称:ExampleMSP         ID:范例MSP         MSPDir:/hyperledger/stp.example.com/msp         锚点:             -主持人:peer0.stp.example.com

3。)更新频道配置

考虑到MSP的新声明,提取了新的通道工件。

configtxgen -printOrg ExampleMSP> ./channel-artifacts/Example.json

在CLI容器旁边执行的命令:

export ORDERER_CA=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem
export CHANNEL_NAME=example-channel

peer channel fetch config config_block.pb -o orderer.example.com:7050 -c $CHANNEL_NAME --tls --cafile $ORDERER_CA

configtxlator proto_decode --input config_block.pb --type common.Block | jq .data.data[0].payload.data.config > config.json

jq -s '.[0] * {"channel_group":{"groups":{"Application":{"groups": {"ExampleMSP":.[1]}}}}}' config.json Example.json > modified_config.json

configtxlator proto_encode --input config.json --type common.Config --output config.pb

configtxlator proto_encode --input modified_config.json --type common.Config --output modified_config.pb

configtxlator compute_update --channel_id $CHANNEL_NAME --original config.pb --updated modified_config.pb --output Example_update.pb

configtxlator proto_decode --input Example_update.pb --type common.ConfigUpdate | jq . > Example_update.json

echo '{"payload":{"header":{"channel_header":{"channel_id":"example-channel", "type":2}},"data":{"config_update":'"$(cat Example_update.json)"'}}}' | jq . > Example_update_in_envelope.json

configtxlator proto_encode --input Example_update_in_envelope.json --type common.Envelope --output Example_update_in_envelope.pb

peer channel signconfigtx -f Example_update_in_envelope.pb

peer channel update -f Example_update_in_envelope.pb -c $CHANNEL_NAME -o orderer.example.com:7050 --tls --cafile $ORDERER_CA

在“对等频道更新”命令后获取错误

0 个答案:

没有答案