Ошибка: Неверный закрытый ключ | Hyperledger Fabric Node SDK - PullRequest
0 голосов
/ 19 июня 2019

Я использую образец перевода баланса .

Я включил ORDERER_GENERAL_TLS_CLIENTAUTHREQUIRED=true в контейнере заказов.

При создании нового канала (mychannel) он выдавал ошибку Handshake failed with fatal error

После ошибки я настроил клиент

client.setTlsClientCertAndKey(cert, key);

 let adminClient = JSON.parse(
      fs.readFileSync(path.join(__dirname, "../fabric-client-kv-org1/admin"))
    );
    logger.info(adminClient);

    client.setTlsClientCertAndKey(
      adminClient.enrollment.identity.certificate,
      adminClient.enrollment.signingIdentity
    );

Я импортирую admin, а затем использую его signatureIdentity и сертификат для установки клиента tls.

Теперь выдается ошибка как Invalid private key

E0619 17:15:44.135000000 139448 ssl_transport_security.cc:671] Invalid private key.
E0619 17:15:44.136000000 139448 security_connector.cc:1087] Handshaker factory creation failed with TSI_INVALID_ARGUMENT.
E0619 17:15:44.137000000 139448 secure_channel_create.cc:121] Failed to create secure subchannel for secure name 'localhost:7050'
E0619 17:15:44.137000000 139448 secure_channel_create.cc:154] Failed to create subchannel arguments during subchannel creation.
2019-06-19T11:45:47.132Z - error: [Remote.js]: Error: Failed to connect before the deadline URL:grpcs://localhost:7050
2019-06-19T11:45:47.133Z - error: [Orderer.js]: Orderer grpcs://localhost:7050 has an error Error: Failed to connect before the deadline URL:grpcs://localhost:7050

В чем причина ошибки и использую ли я правильный клиентский сертификат и ключ?Это сбивает с толку в документах

https://fabric -sdk-node.github.io / tutorial-network-config.html

1 Ответ

0 голосов
/ 20 июня 2019

Я выяснил причину неверного закрытого ключа. Подпись удостоверения личности не является закрытым ключом.

После регистрации пользователя я регистрирую его и сохраняю его закрытый ключ и сертификат локально.

 let req = {
      enrollmentID: "admin",
      enrollmentSecret: "adminpw",
      profile: "tls"
    };

    const enrollment = await caClient.enroll(req);
client.setTlsClientCertAndKey(
      enrollment.certificate,
      enrollment.key.toBytes()
    );
...