hyperledger-fabric - MSP 错误:提供的身份无效:x509:证书由未知权威 Hyperledger Fabric 签名
问题描述
我首先使用生成加密材料cryptogen
,然后启动例如org1
CA 服务器,如下所示:
fabric-ca-server start --ca.certfile $(ls crypto-config/peerOrganizations/org1/ca/*.pem) --ca.keyfile $(ls crypto-config/peerOrganizations/org1/ca/*_sk) -d -b admin:adminpw --port 7054
从 NodeJS SDK 我可以注册管理员并注册(和注册)新用户。但是当我尝试使用这些新的用户凭据甚至管理员凭据访问 Fabric 网络时,我在 SDK 控制台上收到以下错误:
root@peer0:/var/hyperledger/api# ts-node src/invoke.ts
Wallet path: /var/hyperledger/api/wallet
2019-10-08T13:32:17.819Z - warn: [DiscoveryEndorsementHandler]: _build_endorse_group_member >> G0:0 - endorsement failed - Error: 2 UNKNOWN: access denied: channel [private-channel] creator org [Org1MSP]
2019-10-08T13:32:17.826Z - warn: [DiscoveryEndorsementHandler]: _build_endorse_group_member >> G0:0 - endorsement failed - Error: 2 UNKNOWN: access denied: channel [private-channel] creator org [Org1MSP]
2019-10-08T13:32:17.833Z - warn: [DiscoveryEndorsementHandler]: _build_endorse_group_member >> G1:0 - endorsement failed - Error: 2 UNKNOWN: access denied: channel [private-channel] creator org [Org1MSP]
2019-10-08T13:32:17.841Z - warn: [DiscoveryEndorsementHandler]: _build_endorse_group_member >> G1:0 - endorsement failed - Error: 2 UNKNOWN: access denied: channel [private-channel] creator org [Org1MSP]
Failed to submit transaction: Error: Endorsement has failed
peer
日志说:
MSP error: the supplied identity is not valid: x509: certificate signed by unknown authority.
我在对等 CLI 容器和 SDK 中使用完全相同的凭据。我可以从 CLI 执行所有链代码操作,但为什么对等方不接受来自 SDK 的连接?
和它FABRIC_CA_SERVER_CA_NAME
有什么关系吗?是否也为 CA 服务器cryptogen
创建一个?FABRIC_CA_SERVER_CA_NAME
如果是,对等凭证是否与 CA 名称相关联?在 NodeJS SDK 中,我也尝试过caName=ca-org1
,caName=ca.org1
但仍然遇到同样的错误。
解决方案
我遇到了这个(或非常类似的东西)并设法解决了它。我的问题是命令中我的 .pem 和私钥文件的路径不正确fabric-ca-server start
。
如果路径不正确,当 CA 容器启动时,它将无法找到您的文件(由 生成cryptogen
),因此将生成自己的文件。
注册和注册脚本会根据您的cryptogen
材料生成身份,这是正确的,但它们不是您的 CA 决定为您生成的证书。
要检查这是否正在发生,请查看 CA 日志:
docker logs <your ca container>
在服务器启动的顶部附近,查找有关丢失密钥的消息或有关生成文件的消息。
希望有帮助。
推荐阅读
- http - 类型“HTTP”上不存在属性“setServerTrustMode”。(插件-高级-HTTP)
- hyperledger-fabric - 签名集不满足策略
- xamarin.forms - Xamarin Forms 在哪里更改 Android 和 IOS 的 StatusBar
- javascript - 有没有办法用我的例子来做后台任务?
- iis - Jmeter:IIS 服务器停止响应
- javascript - “appendListItem”中的错误 - 谷歌插件
- java - Application.yml 值自动转换为小写
- javascript - react-export-excel 出口太慢
- java - 如何使用Java实现华为分块文件上传
- c# - 使用 HttpClient.GetAsync 在浏览器中打开链接