在运行Hyperledger客户端的SigningIdentityInfo中未找到KeyMaterial [英] KeyMaterial not found in SigningIdentityInfo running hyperledger client
本文介绍了在运行Hyperledger客户端的SigningIdentityInfo中未找到KeyMaterial的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在运行Hyperledger Fabric v1.4集群。我使用以下命令使用OpenSSL创建了所有证书:
openssl req -nodes -newkey ec -pkeyopt ec_paramgen_curve:prime256v1 -keyout ecdsa.key -out mycert.crt -subj "/C=US/ST=STATE/L=CITY/O=Company/OU=admin/CN=admin.company.com"
分别更改OU和CN时,我的同行正在运行,我的订单者正在运行,我的订单者已达成共识,现在我要从客户端创建一个频道。
我将Fabric-Tools 1.4.11映像与以下环境变量一起用于我的客户端:
GOPATH=/var/hyperledger
CORE_PEER_ID=cli
CORE_PEER_TLS_ENABLED="true"
CORE_PEER_TLS_ROOTCERT_FILE="[/var/hyperledger/peer/msp/tlsintermediatecerts/intermediate.crt,/var/hyperledger/peer/msp/tlscacerts/ca.crt]"
CORE_PEER_TLS_CLIENTAUTHREQUIRED="true"
CORE_PEER_TLS_CLIENTCERT_FILE=/var/hyperledger/peer/tls/cert.pem
CORE_PEER_TLS_CLIENTKEY_FILE=/var/hyperledger/peer/tls/key.pem
CORE_PEER_TLS_CLIENTROOTCAS_FILES="[/var/hyperledger/peer/msp/tlsintermediatecerts/intermediate.crt,/var/hyperledger/peer/msp/tlscacerts/ca.crt]"
CORE_PEER_MSPCONFIGPATH=/var/hyperledger/peer/msp
FABRIC_CFG_PATH=/var/hyperledger/peer
FABRIC_LOGGING_SPEC="grpc=debug:info"
但当我尝试创建频道时,收到以下错误:
2021-03-25 18:59:05.672 UTC [main] InitCmd -> ERRO 001 Cannot run peer because error when setting up MSP of type bccsp from directory /var/hyperledger/peer/msp: KeyMaterial not found in SigningIdentityInfo
这是我正在使用的命令:
peer channel create -o "orderer1.xxxx.eastus.aksapp.io" -c "mychannel" -f ./channel.tx --tls --cafile "/var/hyperledger/peer/tls/chain.crt" --clientauth --certfile /var/hyperledger/peer/tls/admintls.crt --keyfile /var/hyperledger/peer/tls/admintls.key
这是我的MSP结构:
+ /var/hyperledger/peer
+ msp
+ admincerts > admin.crt
+ cacerts > ca.crt
+ intermediatecerts > intermediate.crt
+ tlscacerts > ca.crt
+ tlsintermediatecerts > intermediate.crt
+ signcerts > admin.crt
+ keystore > admin.key
+ tls
admintls.crt
admintls.key
ca.crt
intermediate.crt
chain.crt
我查看了question但我的密钥是这样解密的:
-----BEGIN PRIVATE KEY-----
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-----END PRIVATE KEY-----
我还仔细检查了MSP中的所有证书和密钥,其中仅在他们的文件夹中,我尝试在订单者中启用和禁用相互TLS,在MSP文件夹中执行chmod-R 777,将所有名称更改为.crt或.pem,并选中Go Version,但没有成功。
我的证书没有这些属性:hf.EnllmentID、hf.Type和hf.Affiliation,但我猜这些属性不是必需的,因为Peer和Order正在运行,或者这可能是问题所在?
谢谢您的帮助,我们将不胜感激。
推荐答案
发现了问题,我使用的是对等管理证书而不是订货方管理证书,并且我没有添加具有节点OU的config.yaml。因此,我将证书更改为订货方管理员,错误消失。
更新:
实际上,问题是我将错误的密钥文件放在了KeyStore文件夹中,这就是它们不匹配的原因。
这篇关于在运行Hyperledger客户端的SigningIdentityInfo中未找到KeyMaterial的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文