Ответы ниже приведены для Node SDK , но надеюсь, что они проливают некоторый свет на вопрос
1) Самый простой способ обеспечить (https) соединение междуSDK (клиент) и CA / peer / orderer?
Узел SDK не поддерживает связь с сервером фабрики ca, для которого включена поддержка клиентов (взаимный TLS) [ 1 ]
Сертификат TLS, предоставленный сервером (с поддержкой TLS), проверяется на соответствие сертификату в tlsCACerts
.Процесс проверки можно представить как выполняющуюся ниже команду:
openssl verify -CAfile <tlsCACerts> <cert-provided-by-server>
Свойство tlsCACerts
устанавливается для каждого участника, заказчика и фабрики ca server в файле network-config.yaml - все они могли бы использовать разные tlsCACerts
, если они хотели.
Для однорангового и заказчика, узел sdk поддерживает clitatauth (или взаимный TLS), но он должен быть настроен в коде, а не в файле конфигурации, так какописано в [ 2 ] - см. раздел, в котором они показывают, как использовать client.setTlsClientCertAndKey(cert, key)
Утверждение в вопросе о том, что
tlsCACerts раздел для взаимнойСоединения TLS
неверны.
2) Почему мы жестко кодируем пути файлов сертификатов / ключей TLS в файл конфигурации, когда их нужно очень часто обновлять при использовании в работе?
Не знаюНе думаю, что они будут обновляться очень часто.И если бы они были, то, по иронии судьбы, config был бы правильным местом IMO.
Это утверждение в вопросе
взаимный TLS не должен быть необходим для соединения https (большинство браузеровне используйте взаимный TLS для защиты соединения).
правильно.Взаимный TLS обеспечивает двунаправленную проверку, т. Е. Сервер также проверяет клиента.В одностороннем TLS только сервер проверяет сервер.