在 Hyperledger fabric CA 中注册和注册证书有什么区别

What is diffrence between enrolling and registering a certificate in Hyperledger fabric CA

在 Hyperledger Fabric CA 中注册和注册证书之间到底有什么区别。我是密码学的新手,我对 Fabric CA 的工作方式感到非常困惑。此外,通过 cryptogen 生成的证书与通过 Fabric CA 生成的证书有何不同。

所以据我所知,当你 "enrol" 一个身份时,你会得到它的证书和私钥。当您 "register" 身份时,您只是通过 CA 服务器为该身份创建用户名和密码。

cryptogen工具生成的证书与Fabric CA生成的证书没有区别,cryptogen工具是为了开发方便。它不应在实时/生产环境中使用。在引擎盖下,cryptogen 工具实际上在本地启动了一个 fabric ca 服务器。

这里是 Fabric CA 最新文档的link:

https://hyperledger-fabric-ca.readthedocs.io/en/latest/

注册身份意味着在 Fabric CA 中添加其详细信息。

注册是指注册身份连接到 CA 并向其发送证书签名请求 (CSR) 时的过程。 CA 检查身份是否已注册并执行一些其他验证,如果检查成功,则它 returns 为身份签署证书。由于证书是由区块链网络信任的CA签署的,身份现在意味着可以使用此证书与网络进行交互。

因此,为了使身份能够与网络交互,它必须按此特定顺序通过两个步骤:

  1. 在 CA 注册
  2. 被录取

Admin 已在启动时使用 CA 预注册

fabric-ca-server start -b admin:adminpw

详情在这里: https://hyperledger-fabric-ca.readthedocs.io/en/release-1.4/users-guide.html

也可以参考source

"Registration" 由 CA 管理员完成。用户名和密码与属性一起分配给身份(例如,身份是管理员还是节点?)。此注册将用户名和密码以及有关身份的其他相关信息放入 CA 的数据库中。此时尚未生成任何证书。刚刚注册了身份

"Enrollment" 是创建证书并将其提供给身份用户的过程。用户名和密码在带外提供给该用户,他们使用名称和密码作为对 CA 的 fabric-ca-client 调用的一部分。然后生成 public 和私钥——用在 CA 注册的相关属性编码——然后生成。

注册和登记分开的原因是为了确保只有身份的用户才能收到他们的私钥。

CA 创建的证书与 cryptogen 创建的证书相同---x.509 证书是 x.509 证书---但 cryptogen 是在测试环境中快速创建证书的工具,而不是为任何类似于生产的东西创建证书的真正方法。