代码之家  ›  专栏  ›  技术社区  ›  morpheus

Hyperledger结构:如何在不同的主机上设置ICA?

  •  0
  • morpheus  · 技术社区  · 6 年前

    我们试图概括 fabric-ca 要在多个主机上运行的示例。因为它运行在一台主机上,因此在现实场景中没有用处。

    我们面临的问题是:我们启动主机1上的根CA。然后,当我们在主机2上启动ICA时,我们需要向它提供fabric_ca_server_intermediate_tls_certfiles变量中根CA的cert。在示例中,这是通过安装一个共享卷来完成的,这是一个在容器位于单个主机上时可以工作的黑客程序。

    在里面 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通信,我们需要它的证书在可信证书列表中。

    我们如何解决这个问题?

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

    1. 这看起来很复杂,比我们报名参加的工作还要多
    2. 我们真的不想设置共享卷,因为它会带来错误(一个人覆盖另一个人的文件)和不需要的耦合的机会。

    另一个选项是能够将文件(在我们的例子中是根CA证书)从主机1(根CA)上的一个容器复制到主机2(ICA)上的另一个容器。这看起来也不简单 ref . 我们真的希望得到一个简单的干净的解决方案,却惊讶地没有发现任何

    1 回复  |  直到 6 年前
        1
  •  0
  •   Saad Karim    6 年前

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

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