Hyperledger fabric 无法使用节点SDK+;我的网络上的相互TLS

Hyperledger fabric 无法使用节点SDK+;我的网络上的相互TLS,hyperledger-fabric,hyperledger,tls1.2,Hyperledger Fabric,Hyperledger,Tls1.2,我的网络有1个cli、1个ca、1个订购方和2个对等方。 我不得不转移到3个订购方,我读到我需要实现TLS,让他们进行通信。 我正在使用Hyperledger 1.4.3和Node SDK 1.4.4 现在,我的同行、cli、ca和订购方都有TLS,而且一切都正常,因为我已经实例化并安装了chaincode,还通过cli调用了chaincode,必要时使用--TLS。 木筏订购者正确选择领导,同伴通过闲聊等方式交流。 因此,从网络的角度来看,一切似乎都很好 现在我需要更新Node.sdk应用程序

我的网络有1个cli、1个ca、1个订购方和2个对等方。 我不得不转移到3个订购方,我读到我需要实现TLS,让他们进行通信。 我正在使用Hyperledger 1.4.3和Node SDK 1.4.4

现在,我的同行、cli、ca和订购方都有TLS,而且一切都正常,因为我已经实例化并安装了chaincode,还通过cli调用了chaincode,必要时使用--TLS。 木筏订购者正确选择领导,同伴通过闲聊等方式交流。 因此,从网络的角度来看,一切似乎都很好

现在我需要更新Node.sdk应用程序,它与fabric示例提供的应用程序非常相似。我用于注册管理员和用户,然后通过以下方式连接到网络:

gateway = new Gateway()
await gateway.connect(ccp, { wallet, identity: 'user1', discovery: {enabled:false} });
const network = await gateway.getNetwork(channelName);
多亏了网络,我习惯于调用合同和打电话。 由于我正在使用TLS,因此不再有效

我了解到我需要修改连接配置文件,它现在在对等机和证书颁发机构中具有“tlsCACerts”,因为我只对为管理员用户发布证书感兴趣,然后对对等机进行查询。 对等方的tls证书指向peerOrganization/ORGNAME/peers/PEERNAME/tls/ca.crt,而ca的tls证书指向peerOrganization/ORGNAME/tlsca/ca.crt。 在enrollAdmin和registerUser上,当我使用ca.enroll()函数时,我还添加了配置文件:“tls”作为选项

无论如何,我无法执行查询,因为当我调用getNetwork时,调试控制台上的答案是:

Unabled to initialize channel. Attempted to contact 1 Peers. Last error was Error: 2 UNKNOWN: access denied: channel [CHANNELNAME] creator org [ORGMSP].
我检查了一下我正在联系的peer1,我看到了

channel [CHANNELNAME]: MSP error: the supplied identity is not valid: x509: certificate signed by unknown authority

我被困在这里,任何帮助都将不胜感激。

TLS意味着客户端请求服务器发送他的证书,客户端将进行验证 相互TLS意味着客户端和服务器都需要彼此共享证书,并相互验证

所以,若在双方TLS上触发,那个么客户端也必须发送他的证书

请遵循half node sdk教程中的详细说明


我遵循了这个指南,但是如果我需要打合同电话怎么办?我习惯于获得网络,并从中获得渠道、合同和提交交易。现在该怎么办?