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