问题描述
我已经为Thales提供的Hyperledger Fabric创建了HSM按需服务。
-
使用Thales门户创建了HSM服务。
-
已创建的HSM客户端,通过该客户端我们可以连接到已创建的HSM服务。
-
使用以下详细信息更新了fabric-ca-server配置文件中的bccsp部分。
default: PKCS11 pkcs11: Library: =/etc/hyperledger/fabric/dpod/org1.example.com/libs/64/libCryptoki2.so Pin: "*****" Label: testhsm hash: SHA2 security: 256 Immutable: false filekeystore: # The directory used for the software file-based keystore keystore: msp/keystore
-
使用命令
来获取HSM客户端zip随附的setenv文件。source ./setenv
-
使用
fabric-ca-server start
将Fabric-ca-server作为本机进程启动-服务器可以成功连接到HSM服务。 -
尝试在docker容器中启动fabric-ca-server,将整个HSM客户端zip卷安装,并设置了$ ChrystokiConfigurationPath。
启动Fabric ca服务器docker容器时,它抛出以下错误Error: Failed to get BCCSP with opts: Could not initialize BCCSP PKCS11: Failed initializing PKCS11 library =/etc/hyperledger/fabric/dpod/org1.example.com/libs/64/libCryptoki2.so testhsm: Instantiate failed [=/etc/hyperledger/fabric/dpod/org1.example.com/libs/64/libCryptoki2.so]
解决方法
好像您在bccsp配置中有一个=
登录:
Library: =/etc/hyperledger/fabric/dpod/org1.example.com/libs/64/libCryptoki2.so
应该是
Library: /etc/hyperledger/fabric/dpod/org1.example.com/libs/64/libCryptoki2.so
,
是的,这是问题之一。
主要问题已通过以下方式解决:
- 修改fabric-ca docker文件,它当前使用Alpine作为基本映像,HSM无法在Alpine上初始化,而将其替换为centos。
- 重建fabric-ca映像并启动fabric-ca-server。