Hyperledger fabric gossip 验证 RemotePeer 的证书哈希
Hyperledger fabric gossip authenticate RemotePeer's cert hash
我是 hyperledger fabric 的新手,我有一个关于 gossip 的远程对等身份验证的问题。
因为我们的服务器在内部网络(无法访问互联网),我们需要在我们的peer节点之前设置一个nginx,假设一个orderer,2个org,每个org只有一个peer,peer0.org1(peer01),peer0。 org2(peer02),peer0.org1是我们内部的peer节点,需要通过nginx路由,包括gossip和enable mtls。如果我们有 peer0.org2 的私钥和证书,它应该可以工作,配置如下。
peer01 nginx{
ssl_certificate peer02 server crt;
ssl_certificate_key peer02 server key;
ssl_client_certificate peer01 client ca crt;
location / {
grpc_pass to peer02
grpc_ssl_certificate peer01 client crt;
grpc_ssl_certificate_key peer01 client key;
grpc_ssl_trusted_certificate peer02 server ca.crt;
}
但实际上我们没有peer0.org2的私钥,所以我们尝试使用peer01的ca cert assign peer0.org2'属于peer01的证书和密钥,peer01-peer02.crt,peer01-peer02.key.
peer01 nginx{
ssl_certificate peer01-peer02 server crt;
ssl_certificate_key peer01-peer02 server key;
ssl_client_certificate peer01 client ca crt;
location / {
grpc_pass to peer02
grpc_ssl_certificate peer01 client crt;
grpc_ssl_certificate_key peer01 client key;
grpc_ssl_trusted_certificate peer02 server ca.crt;
}
但是在fabric gossip源码中,我们发现不能这样做
enter image description here
它将验证远程证书(我认为它是从通道获取的)之间的哈希值并接收 msg'cert,因此最终发生错误并且无法正常工作。
我的解决方案是删除这些验证码并重建 docker,但我不知道重建哪些 docker 图像可以工作,是 fabric-peer,有人能告诉我吗fabric 中的每个 docker 都会使用
源代码中的什么包?
或者可以告诉我比修改源代码更好的解决方案吗?我必须说我们需要使用 tls。
非常感谢。
确实是这个原因,至于:
my solution is that delete these verify codes and rebuild the docker,
but I don't know rebuild which docker images can work, is that
fabric-peer, can some guys tell me that each docker in fabric will use
what package in source code?
您可以删除代码并执行 make peer-docker
,它将使用更新后的代码构建一个新的 docker 图像。
至于在官方 Fabric 中修复此 "problem",您可以查看 FAB-8131 并提高对此的认识,因为社区不支持实施它。
您可以考虑的另一件事是使用 non TLS terminating 代理。
我是 hyperledger fabric 的新手,我有一个关于 gossip 的远程对等身份验证的问题。 因为我们的服务器在内部网络(无法访问互联网),我们需要在我们的peer节点之前设置一个nginx,假设一个orderer,2个org,每个org只有一个peer,peer0.org1(peer01),peer0。 org2(peer02),peer0.org1是我们内部的peer节点,需要通过nginx路由,包括gossip和enable mtls。如果我们有 peer0.org2 的私钥和证书,它应该可以工作,配置如下。
peer01 nginx{
ssl_certificate peer02 server crt;
ssl_certificate_key peer02 server key;
ssl_client_certificate peer01 client ca crt;
location / {
grpc_pass to peer02
grpc_ssl_certificate peer01 client crt;
grpc_ssl_certificate_key peer01 client key;
grpc_ssl_trusted_certificate peer02 server ca.crt;
}
但实际上我们没有peer0.org2的私钥,所以我们尝试使用peer01的ca cert assign peer0.org2'属于peer01的证书和密钥,peer01-peer02.crt,peer01-peer02.key.
peer01 nginx{
ssl_certificate peer01-peer02 server crt;
ssl_certificate_key peer01-peer02 server key;
ssl_client_certificate peer01 client ca crt;
location / {
grpc_pass to peer02
grpc_ssl_certificate peer01 client crt;
grpc_ssl_certificate_key peer01 client key;
grpc_ssl_trusted_certificate peer02 server ca.crt;
}
但是在fabric gossip源码中,我们发现不能这样做 enter image description here
它将验证远程证书(我认为它是从通道获取的)之间的哈希值并接收 msg'cert,因此最终发生错误并且无法正常工作。
我的解决方案是删除这些验证码并重建 docker,但我不知道重建哪些 docker 图像可以工作,是 fabric-peer,有人能告诉我吗fabric 中的每个 docker 都会使用 源代码中的什么包? 或者可以告诉我比修改源代码更好的解决方案吗?我必须说我们需要使用 tls。 非常感谢。
确实是这个原因,至于:
my solution is that delete these verify codes and rebuild the docker, but I don't know rebuild which docker images can work, is that fabric-peer, can some guys tell me that each docker in fabric will use what package in source code?
您可以删除代码并执行 make peer-docker
,它将使用更新后的代码构建一个新的 docker 图像。
至于在官方 Fabric 中修复此 "problem",您可以查看 FAB-8131 并提高对此的认识,因为社区不支持实施它。
您可以考虑的另一件事是使用 non TLS terminating 代理。