node.js - 关于通过在 Hyperledger Fabric 中注册为 Nodejs 客户端创建的管理员/用户身份
问题描述
关于nodejs客户端注册过程创建的客户端/用户身份,我有以下查询。当我尝试注册身份时,fabric-ca 会为该特定用户颁发证书。颁发给该客户的证书具有以下属性。
证书信息: 通用名称:admin 组织单位:client 有效期:2020 年 5 月 6 日 有效期至:2021 年 5 月 6 日 颁发者:fabric-ca-server, Hyperledger
现在,当我尝试使用相同的身份来安装和实例化链代码或通过 TestAPI 与结构运行时交互时,它会抛出以下错误:
2020-05-05 18:35:06.670 UTC [protoutils] ValidateProposalMessage -> WARN 0e4 channel [ichannel]:MSP 错误:提供的身份无效:x509:证书由未知机构签名
我已经使用 cryptogen 工具为所有组织创建了加密证书。这些证书由 network-config.yaml 文件中定义的证书颁发机构颁发。我怀疑证书颁发者的差异会导致身份问题。请让我知道我的理解是否正确。
如果是,那么我如何确保这些 nodejs 客户端证书被 network-config.yaml 文件中定义的相同证书颁发机构使用。
解决方案
我能够通过更新 docker-compose 文件中的证书颁发机构环境变量来解决此问题。早些时候,他们没有从/etc/hyperledger/fabric-ca-server-config/位置中挑选出来。在重新生成加密配置并重新启动整个网络之前,我确实更新了所有证书颁发机构的以下环境变量的路径:
- FABRIC_CA_SERVER_CA_KEYFILE
- FABRIC_CA_SERVER_CA_CERTFILE
注意:网络内部禁用了 TLS 配置。
这对我有用。
推荐阅读
- join - 如何使用 JdbcContext 在 Apache Metamodel 中表示 Self join?
- mysql - 在 Golang 从数据库中读取时区分空对象和空值
- python - pandas.read_excel 和 to_excel 仅使用最大的工作表或具有最多列的工作表
- c++ - 从 ESPAsyncWebServer 请求参数读取数据时出现大师冥想错误
- latex - 在乳胶中左右移动文本
- javascript - ReactJS 不保存对象
- css - 单击后如何使锚标记禁用或启用
- angular - 下载来自 Angular 中的 Java REST API 的 .doc
- sql - 如何从 bigquery 中的结构中删除行
- java - 类型不匹配无法从 Integer 转换为 Optional