Hyperledger Fabric: Как настроить ICA на другом хосте? - PullRequest
0 голосов
/ 25 января 2019

мы пытаемся обобщить образец 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 бесполезен, потому что он сталкивается с проблемой курицы и яйца - для связи с корневым центром сертификации нам нужен его сертификат в списке доверенных сертификатов.

Как мы можем решить эту проблему?

мы рассмотрели, как создать общий том на хостах докеров через здесь :

  1. Itвыглядит очень сложно и требует больше работы, чем то, что мы подписали на
  2. , мы на самом деле не хотим настраивать общий том, так как это может привести к ошибкам (один человек перезаписывает файл другого) и нежелательному соединению.

Другой вариант - иметь возможность скопировать файл (в нашем случае корневой сертификат) из одного контейнера на хосте 1 (корневой ЦС) в другой контейнер на хосте 2 (ICA).Это также не кажется простым ref .мы действительно надеялись на простое чистое решение и удивились, что не нашли

1 Ответ

0 голосов
/ 29 января 2019

Если промежуточный ЦС пытается подключиться к серверу корневого ЦС с включенным протоколом TLS, то да, вам нужно будет получить файл сертификата TLS корневого ЦС сервера. Кроме этого у вас действительно нет возможности установить безопасное соединение.

Другой вариант, с которым вы можете пойти - это выполнить всю сетевую загрузку без TLS и получить все соответствующие файлы цепочки, а затем включить TLS на всех серверах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...