是否可以从 Hyperledger Fabric 中的 HSM 管理 TLS 证书?
Is it possible to manage TLS certificates from an HSM in 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 证书,我是不是漏掉了什么?或者 HSM 中是否也有 TLS 私钥?
谢谢!
这不可能。不可能的原因是 Fabric 中的 TLS 堆栈不与 BCCSP 接口,BCCSP 是在 Fabric 中管理 HSM 的组件。
但是,可以通过一些代码更改来实现。只需要将 TLS 堆栈连接到 BCCSP,然后就可以了。
我在 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 证书,我是不是漏掉了什么?或者 HSM 中是否也有 TLS 私钥?
谢谢!
这不可能。不可能的原因是 Fabric 中的 TLS 堆栈不与 BCCSP 接口,BCCSP 是在 Fabric 中管理 HSM 的组件。
但是,可以通过一些代码更改来实现。只需要将 TLS 堆栈连接到 BCCSP,然后就可以了。