Hyperledger Fabric Samples部署:CA证书文件缺失致应用启动失败
排查Asset Transfer Basic应用启动时的cert.pem文件缺失问题
已完成Asset Transfer Basic的TypeScript和Go版本链码部署,但执行npm start启动应用时出现证书文件缺失错误,具体提示找不到指定路径的cert.pem。完整执行输出如下:
asset-transfer-basic@1.0.0 start node dist/app.js channelName: mychannel chaincodeName: basic mspId: Org1MSP cryptoPath: /home/gokulalex/Code/fabric/fabric-samples/test-network/organizations/peerOrganizations/org1.example.com keyDirectoryPath: /home/gokulalex/Code/fabric/fabric-samples/test-network/organizations/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/keystore certPath: /home/gokulalex/Code/fabric/fabric-samples/test-network/organizations/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/signcerts/cert.pem tlsCertPath: /home/gokulalex/Code/fabric/fabric-samples/test-network/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt peerEndpoint: localhost:7051 peerHostAlias: peer0.org1.example.com ******** FAILED to run the application: [Error: ENOENT: no such file or directory, open '/home/gokulalex/Code/fabric/fabric-samples/test-network/organizations/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/signcerts/cert.pem'] { errno: -2, code: 'ENOENT', syscall: 'open', path: '/home/gokulalex/Code/fabric/fabric-samples/test-network/organizations/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/signcerts/cert.pem' }
排查步骤:
- 验证文件路径与实际文件:前往报错的路径
/home/gokulalex/Code/fabric/fabric-samples/test-network/organizations/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/signcerts/,确认是否存在cert.pem,部分场景下证书文件名可能为User1@org1.example.com-cert.pem,若存在此类文件,可修改应用配置中的certPath指向正确文件名,或创建软链接将其命名为cert.pem - 重新生成用户身份文件:进入test-network目录,执行
./organizations/fabric-ca/registerEnroll.sh org1脚本,重新生成Org1的User1身份相关证书与密钥文件,该脚本会自动在对应目录生成标准命名的证书文件 - 检查应用配置:确认应用的配置文件(如
connection.json或环境变量配置)中certPath的路径是否完全正确,注意目录层级、大小写是否与实际文件系统匹配 - 权限检查:执行
ls -l /home/gokulalex/Code/fabric/fabric-samples/test-network/organizations/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/signcerts/查看文件权限,若当前用户无读取权限,执行chmod +r <对应证书文件路径>添加读取权限
内容的提问来源于stack exchange,提问作者Gokul Alex
相关产品推荐
相关产品推荐

