首页 > 解决方案 > Hyperledger Fabric 服务发现 - 如何获取对等 tls 证书?

问题描述

我正在运行一个由 3 个组织组成的超级账本网络(1.3)。在所有组件(对等节点也是如此)上启用了 TLS。

我正在使用 fabric-go-sdk 来触发事务。

在 fabric sdk 的日志文件中,我经常收到以下错误:[...]certificate signed by unknown authority[...]

当 sdk(为我自己组织的对等方初始化)尝试联系网络上不知道正确 tls 证书的其他节点时,似乎会发生这种情况。

我也明白,sdk 启动发现服务并尝试发现其他对等点(例如通道的对等点)。

但是我的 sdk 如何检索这些对等方的 tls ca 证书以便能够与他们联系?

到目前为止我发现的是,在 sdk 的发现服务中,有一个函数可以通过调用 PeerConfig() 方法将发现的对等点转换为 PeerConfig :

func asPeer(ctx contextAPI.Client, endpoint *discclient.Peer){
 // ....
 peerConfig, found := ctx.EndpointConfig().PeerConfig(url)
 // ....
}

但是 PeerConfig 函数也不知道发现的对等点的 tls ca 证书是什么,因此无法仅通过查看提供的 url 来创建正确的 PeerConfig 对象。

将我的 sdk 配置为能够与其他对等方交谈的正确方法是什么?sdk从哪里获得其他组织的tls ca证书?他们真的被发现了吗?还是我必须手动提供?

标签: hyperledger-fabric-sdk-go

解决方案


@Subby 不要与所有东西混淆

组织 1 - 组织 1CA

组织2-组织2CA

如果 go-sdk 的配置文件包含两个组织,那么您必须提及适当组织同行的 tlsca 证书

提及正确的 tlsca 证书是您的责任与服务发现无关

a certificate signed by unknown authority >>> means wrong certificate which is signed by an untrusted certificate authority

您需要做的就是提及适当组织的适当对等方的 tlsca 证书

来到服务发现

The rule of thumb is you must need at least one peer to discover other peers, so the application will use this peer to discover other peers

注意:必须配置

- CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer0.org1.example.com:7051

查看样本发现结果http://ideone.com/UmM0cK


推荐阅读