Hyperledger fabric MSP错误:提供的标识无效:x509:由未知授权机构签署的证书

Hyperledger fabric MSP错误:提供的标识无效:x509:由未知授权机构签署的证书,hyperledger-fabric,hyperledger-fabric-ca,Hyperledger Fabric,Hyperledger Fabric Ca,我首先使用cryptogen生成加密材料,然后启动,例如,org1CA服务器,如下所示: fabric-ca-server start --ca.certfile $(ls crypto-config/peerOrganizations/org1/ca/*.pem) --ca.keyfile $(ls crypto-config/peerOrganizations/org1/ca/*_sk) -d -b admin:adminpw --port 7054 从NodeJS SDK我可以注册管理员

我首先使用
cryptogen
生成加密材料,然后启动,例如,
org1
CA服务器,如下所示:

fabric-ca-server start --ca.certfile $(ls crypto-config/peerOrganizations/org1/ca/*.pem) --ca.keyfile $(ls crypto-config/peerOrganizations/org1/ca/*_sk) -d -b admin:adminpw --port 7054
从NodeJS SDK我可以注册管理员和注册(和注册)新用户。但当我尝试使用这些新的用户凭据甚至管理员凭据访问Fabric network时,在SDK控制台上会出现以下错误:

root@peer0:/var/hyperledger/api# ts-node src/invoke.ts 
Wallet path: /var/hyperledger/api/wallet
2019-10-08T13:32:17.819Z - warn: [DiscoveryEndorsementHandler]: _build_endorse_group_member >> G0:0 - endorsement failed - Error: 2 UNKNOWN: access denied: channel [private-channel] creator org [Org1MSP]
2019-10-08T13:32:17.826Z - warn: [DiscoveryEndorsementHandler]: _build_endorse_group_member >> G0:0 - endorsement failed - Error: 2 UNKNOWN: access denied: channel [private-channel] creator org [Org1MSP]
2019-10-08T13:32:17.833Z - warn: [DiscoveryEndorsementHandler]: _build_endorse_group_member >> G1:0 - endorsement failed - Error: 2 UNKNOWN: access denied: channel [private-channel] creator org [Org1MSP]
2019-10-08T13:32:17.841Z - warn: [DiscoveryEndorsementHandler]: _build_endorse_group_member >> G1:0 - endorsement failed - Error: 2 UNKNOWN: access denied: channel [private-channel] creator org [Org1MSP]
Failed to submit transaction: Error: Endorsement has failed
peer
log说:

MSP error: the supplied identity is not valid: x509: certificate signed by unknown authority.
我在对等CLI容器和SDK中使用完全相同的凭据。我可以从CLI执行所有链码操作,但为什么对等方不接受来自SDK的连接

FABRIC\u CA\u SERVER\u CA\u NAME
与此有关吗?
cryptogen
是否也为CA服务器创建
FABRIC\u CA\u SERVER\u CA\u NAME
?如果是,对等凭据是否与CA名称关联?在NodeJS SDK中,我尝试了
caName=ca-org1
以及
caName=ca.org1
,但仍然得到了相同的错误。

我遇到了这个问题(或者非常类似的问题),并设法解决了它。我的问题是
fabric ca server start
命令中指向my.pem和私钥文件的路径不正确

如果路径不正确,CA容器启动时将无法定位您的文件(由
cryptogen
生成),因此将生成自己的文件

注册和注册脚本根据您的
cryptogen
材料生成身份,这是正确的,但它们不是CA决定为您生成的证书

要检查是否发生了这种情况,请查看CA日志:

docker日志

在服务器启动的顶部附近,查找有关缺少密钥的消息或有关生成文件的消息

希望有帮助