【发布时间】:2020-01-01 15:34:49
【问题描述】:
我正在运行一个由 3 个组织组成的超级账本网络 (1.3)。所有组件都启用了 TLS(对等节点也是如此)。
我正在使用 fabric-go-sdk 来触发事务。
在fabric sdk的日志文件中,我经常得到以下错误: [...]由未知机构签署的证书[...]
这似乎发生在 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证书?他们真的被发现了吗?还是我必须手动提供?
【问题讨论】: