Hyperledger Fabric:如何在其他主机上设置ICA?

时间:2019-01-24 23:25:54

标签: hyperledger-fabric

我们正在尝试概括fabric-ca示例以在多个主机上运行。因为它在单个主机上运行,​​因此在实际情况下毫无用处。

我们面临的问题是:在主机1上启动根CA。然后在主机2上启动ICA时,需要在FABRIC_CA_SERVER_INTERMEDIATE_TLS_CERTFILES变量中提供根CA的证书。在示例中,这是通过装入共享卷来完成的,如果容器位于单个主机上,则该共享卷是一种可行的方法。

env.sh

# The volume mount to share data between containers
DATA=data

start-root-ca.sh

# Copy the root CA's signing certificate to the data directory to be used by others
cp $FABRIC_CA_SERVER_HOME/ca-cert.pem $TARGET_CERTFILE

但是,如果容器位于不同的主机上,那么ICA如何获得根CA的证书? fabric-ca-client getcacert毫无用处,因为它遇到了鸡和鸡蛋的问题-与根CA进行通信,我们需要其证书位于受信任证书的列表中。

我们如何解决这个问题?

我们研究了如何在here上跨Docker主机创建共享卷:

  1. 它看起来比我们签约的要复杂得多,工作更多
  2. 我们真的不想设置共享卷,因为它会引入错误(一个人会覆盖另一个人的文件)和不必要的耦合的机会。

另一种选择是能够将文件(在我们的情况下为root ca cert)从主机1上的一个容器(根CA)复制到主机2上的另一个容器(ICA)。 ref似乎也不简单。我们真的希望有一个简单干净的解决方案,但很惊讶没有找到任何

1 个答案:

答案 0 :(得分:0)

如果中间CA尝试连接到启用了TLS的根CA服务器,那么是的,您将需要带外CA根服务器的TLS证书文件。除此之外,您实际上无法建立安全连接。

您可以选择的另一种选择是在不使用TLS的情况下进行所有网络引导,并获取所有适当的链文件,然后在所有服务器上启用TLS。