在运行Hyperledger客户端的SigningIdentityInfo中未找到KeyMaterial [英] KeyMaterial not found in SigningIdentityInfo running hyperledger client

查看:11
本文介绍了在运行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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆