Можно ли управлять сертификатами TLS из HSM в Hyperledger Fabric?

У меня есть приложение в Hyperledger Fabric, и я хочу использовать HSM для хранения своих закрытых ключей. Я не вижу никаких проблем с его использованием для пар ключей идентификации, но когда дело доходит до пары ключей TLS, я обнаружил следующие проблемы:

  • В одноранговых узлах есть значение конфигурации CORE_PEER_TLS_KEY_FILE, которое мне нужно установить, чтобы связь TLS работала правильно.

  • В заказах есть значение конфигурации ORDERER_GENERAL_TLS_PRIVATEKEY, которое мне нужно установить, чтобы связь TLS работала правильно.

  • В клиенте, создающем шлюз, мне нужно передать закрытый ключ, чтобы иметь возможность установить связь TLS, используя этот код:

    const gateway = new Gateway();
    const ccpPath = path.resolve(this.ccpPath);
    await gateway.connect(ccpPath, { wallet:this.wallet, identity: userId, discovery: { enabled: true, asLocalhost: this.asLocalhost } });
    const client = gateway.getClient();
    client.setTlsClientCertAndKey(identityTLS.certificate, identityTLS.privateKey);
    

Итак, что я вижу, это невозможно, и мне нужно использовать как 2 разных кошелька для хранения личности и сертификатов TLS, я что-то упустил? или возможно ли иметь закрытые ключи TLS также в HSM?

Спасибо!


person Ana Franco    schedule 15.04.2021    source источник


Ответы (1)


Это невозможно. Причина, по которой это невозможно, заключается в том, что стек TLS в Fabric не взаимодействует с BCCSP, который является компонентом, управляющим HSM в Fabric.

Однако это возможно с некоторыми изменениями кода. Все, что нужно, это подключить стек TLS к BCCSP и тогда это будет возможно.

person yacovm    schedule 16.04.2021