Hyperledger fabric Hyperledger结构:在对等通道创建中clientauth标志有什么用途?

Hyperledger fabric Hyperledger结构:在对等通道创建中clientauth标志有什么用途?,hyperledger-fabric,Hyperledger Fabric,我对clientauth的理解是,这是在服务器上启用的,因此只有在客户端提供了有效的TLS证书之后,它才会让客户端连接。对吗 如果是,那么为什么clientauth是一个可以设置为命令参数之一的标志 创建通道时,订购方不是服务器吗?执行对等通道创建的机器是客户端吗?那么,为什么我们要在客户端上打开clientauth?如果有什么效果的话,那它能实现什么呢?上面的标志描述完美地捕捉到了它 TLS通信可以使用单向(仅服务器)和双向(服务器和客户端)身份验证。对等节点既是TLS服务器又是TLS客户端。

我对clientauth的理解是,这是在服务器上启用的,因此只有在客户端提供了有效的TLS证书之后,它才会让客户端连接。对吗

如果是,那么为什么clientauth是一个可以设置为命令参数之一的标志

创建通道时,订购方不是服务器吗?执行
对等通道创建
的机器是客户端吗?那么,为什么我们要在客户端上打开
clientauth
?如果有什么效果的话,那它能实现什么呢?

上面的标志描述完美地捕捉到了它

TLS通信可以使用单向(仅服务器)和双向(服务器和客户端)身份验证。对等节点既是TLS服务器又是TLS客户端。当另一个对等节点、应用程序或CLI连接到它时,它是前者;当另一个对等节点、应用程序或CLI连接到另一个对等节点或订购者时,它是后者

该标志用于启用对等节点上需要的客户端身份验证-默认情况下,该标志处于关闭状态(在对等节点上启用TLS时)。这是一种向服务器标识客户机的方法(例如,在相互TLS设置中,对等方和订购方都可以启用客户机身份验证)

我对clientauth的理解是这是 在服务器上启用,以便仅允许客户端在 客户端已提交有效的TLS证书。对吗

如果是,那么为什么clientauth是一个可以设置为 对等通道创建命令的参数

因为没有它,客户端就不会向服务器提供其TLS证书。因此,如果客户端试图与启用了clientauth的服务器通信,并且在没有此标志的情况下执行
对等通道创建
,则日志中会出现错误消息。比如:

2019-03-12 23:33:59.975 UTC [core/comm] ServerHandshake -> ERRO 022 TLS handshake failed with error tls: client didn't provide a certificate {"server": "PeerServer", "remote address": ""}
创建通道时,订购方不是服务器吗

执行对等通道创建的机器是客户机

那我们为什么要在客户端上打开clientauth呢?如果有什么效果的话,那又有什么作用呢

早回答

2019-03-12 23:33:59.975 UTC [core/comm] ServerHandshake -> ERRO 022 TLS handshake failed with error tls: client didn't provide a certificate {"server": "PeerServer", "remote address": ""}