我们正在尝试概括fabric-ca示例以在多个主机上运行。因为它在单个主机上运行,因此在实际情况下毫无用处。
我们面临的问题是:在主机1上启动根CA。然后在主机2上启动ICA时,需要在FABRIC_CA_SERVER_INTERMEDIATE_TLS_CERTFILES变量中提供根CA的证书。在示例中,这是通过装入共享卷来完成的,如果容器位于单个主机上,则该共享卷是一种可行的方法。
中# The volume mount to share data between containers
DATA=data
中
# 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主机创建共享卷:
另一种选择是能够将文件(在我们的情况下为root ca cert)从主机1上的一个容器(根CA)复制到主机2上的另一个容器(ICA)。 ref似乎也不简单。我们真的希望有一个简单干净的解决方案,但很惊讶没有找到任何
答案 0 :(得分:0)
如果中间CA尝试连接到启用了TLS的根CA服务器,那么是的,您将需要带外CA根服务器的TLS证书文件。除此之外,您实际上无法建立安全连接。
您可以选择的另一种选择是在不使用TLS的情况下进行所有网络引导,并获取所有适当的链文件,然后在所有服务器上启用TLS。