мы пытаемся обобщить образец fabric-ca для работы на нескольких хостах.так как он работает на одном хосте и, следовательно, бесполезен в реальном сценарии.
Проблема, с которой мы сталкиваемся, заключается в следующем: мы раскручиваем корневой CA на хосте 1. Затем, когда мы раскручиваем ICA на хосте 2, мы должны предоставить ему сертификат корневого CA в переменной FABRIC_CA_SERVER_INTERMEDIATE_TLS_CERTFILES.В примере это делается путем монтирования общего тома, который работает, если контейнеры находятся на одном хосте.
в 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 может получить сертификат Root CA?fabric-ca-client getcacert
бесполезен, потому что он сталкивается с проблемой курицы и яйца - для связи с корневым центром сертификации нам нужен его сертификат в списке доверенных сертификатов.
Как мы можем решить эту проблему?
мы рассмотрели, как создать общий том на хостах докеров через здесь :
- Itвыглядит очень сложно и требует больше работы, чем то, что мы подписали на
- , мы на самом деле не хотим настраивать общий том, так как это может привести к ошибкам (один человек перезаписывает файл другого) и нежелательному соединению.
Другой вариант - иметь возможность скопировать файл (в нашем случае корневой сертификат) из одного контейнера на хосте 1 (корневой ЦС) в другой контейнер на хосте 2 (ICA).Это также не кажется простым ref .мы действительно надеялись на простое чистое решение и удивились, что не нашли