了解Hyperledger fabric中的各种证书

15

你好,我正在尝试使用Hyperledger Fabric进行区块链实现。我完成了第一个网络演示并发现其中有很多证书。我已经尝试在下面的图片中按层次安排它们。

enter image description here

我有一些与此相关的问题:

  1. 为什么需要所有这些不同类型的证书?像不同的MSP TLS,它们是一次生成,然后复制到不同的位置吗?
  2. 这些不同的证书将如何在不同的场景(如注册和通信)中使用?
  3. 如果我们不使用Cryptogen,那么某些第三方可以生成所有这些证书吗?
  4. Fabric-CA或任何其他第三方CA如何帮助解决这个问题?

TIA.

4个回答

7
首先感谢您为此创建树形结构。
我是一名hyperledger初学者,但从hyperledger文档中了解到,每个组织都需要一个唯一的根证书(ca-cert),将特定组件(对等体和排序者)绑定到该组织。Fabric内的交易和通信由实体的私钥(keystore)签名,然后通过公钥(signcerts)验证。
由于不同的组织也需要进行通信或共享账本,因此需要在组织级别上使用CA或MSP。在每个组织中,我们可以有多个对等体,因此这些对等体也需要认证。即使来自不同组织的对等体也可以互相加入,因此需要使用signcerts(用于身份验证)和TLScerts(用于安全握手)。
为了了解如何生成它们,建议手动生成工件,以便查看文件夹中的不同证书。
请访问以下链接: http://hyperledger-fabric.readthedocs.io/en/latest/build_network.html
并查看您创建的文件夹中的不同证书。

谢谢@kots,我已经阅读了文档。但是我无法理解那个核心思想或概念,它不能自动地解释整个故事。我会再次阅读文档以找到关键点,并在找到任何信息时与您分享。 - Katiyman

1
当您使用cryptogen生成组织的证书时,您将看到:
├── ca
├── msp
├── peers
├── tlsca
└── users

让我逐一解释 CA:包含CA证书和私钥 tlsca:包含CA证书和私钥(TLS版本) MSP:这是组织MSP,我们需要它来生成创世块

Organizations:
    - &nbd
        Name: nbd
        ID: nbdMSP
        MSPDir: crypto-config/peerOrganizations/nbd/msp
        AnchorPeers:
            - Host: nbd-peer1-nbd
              Port: 7051

同行:Peers包含两个目录。
├── msp
└── tls

检查同行的MSP...
├── admincerts
├── cacerts
├── keystore
├── signcerts
└── tlscacerts

admincerts: 这是对等节点msp,与组织msp不同,每个对等节点都可以拥有管理员证书,用于允许管理员权限用户发出管理员级别的交易。 cacerts: 受信任的根CA证书 keystore: 对等节点的私钥 signcerts: 对等节点证书的签名证书 tlscacerts: 受信任的根CA证书(TLS版本)

----订单者也是一样----

用户

├── Admin@nbd
└── User1@nbd

----对于用户也是相同的----


0

以防你还有疑问,你的帖子有点老了,你可能已经回答了你的询问。

  1. 为什么需要所有这些不同类别的证书。像不同的msp tls一样,它们是生成一次,在不同位置复制吗?

答:我认为在为什么需要所有这些证书方面,@kots 已经基本涵盖了。至于你问题的第二部分,之所以需要复制这么多加密对象,是因为在生产环境中,应该将每个容器分开。因此,您挂载它们的文件夹应该包含通信和授权所需的所有对象。不应该有一个只包含文件副本的中央文件夹。

  1. 这些不同的证书如何在不同场景下使用(如注册和通信)。

答:它们通过一堆安全机制(例如通道、MSP 等),通过八卦协议进行传递,并且需要验证每个请求。有关更多详细信息,请参阅 @kots 提供的链接。

  1. 如果我们不使用 cryptogen,那么某些第三方可以生成所有这些证书吗。

答:您可以使用cryptogen(不使用Fabric-ca),Fabric-CA(使用自己的外部根证书,由cryptogen生成的证书或由fabric-ca生成的证书),或者您可以自己带CA,但这有点困难,需要与您的ChainCode授权策略相匹配。

  1. 如何使用fabric-ca或任何其他第三方CA来帮助解决问题。

答:使用Fabric-CA可以为您提供几乎生产就绪的环境。他们处理大多数加密生成任务,以及处理CRL和Enrollment。如回答#3所述,根据您的要求,您可能会有很多混合选择。

此致敬礼。


0
在设置区块链网络时,我们需要各种证书,其中我们可以专注于CA(认证机构),例如 区块链网络的MSP配置。我个人在IBM Hyperledger应用程序中使用了CA。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接