为Hyperledger Fabric网络中的多个组织具有相同的根ca



在所有结构示例和文档中,通常都有一个唯一的私有证书颁发机构为每个组织颁发证书。 但是,使用代码库,我没有看到不同组织需要每个组织具有不同根 CA 的限制。

为多个组织使用相同的根 CA 是否存在问题?证书中的主题字段是否足以用于不同结构工作流中的身份验证?

如果要确保一个组织不会伪装成另一个组织,则由组织颁发或为组织颁发的证书必须具有独特性。 当然,处理此问题的最简单方法是为每个组织设置一个单独的根 CA。 也可以有一个公共根,但每个组织都有不同的中间 CA。

但是,鉴于您的问题是基本上使用单个 fabric-ca 为多个组织颁发证书,这可以使用 v1.1 及更高版本中引入的组织单位 (OU( 标识符功能来实现。 基本上,您可以在颁发的证书中使用 OU 来区分组织。 使用 Fabric CA v1.1 及更高版本,您可以为每个组织创建不同的隶属关系,颁发证书时,OU 将在注册过程中设置为与身份关联的隶属关系。 您可以信任单个管理员为多个组织正确注册身份,也可以创建一组分层管理员(这意味着创建多个 CA 管理员,但为每个管理员分配不同的隶属关系,因为管理员只能在自己的隶属关系下注册用户(。

然后在 MSP 定义中,您可以使用 config.yaml 文件指定要与 MSP 关联的 OU。 例如,如果您查看 https://github.com/hyperledger/fabric/blob/release-1.1/sampleconfig/msp/config.yaml,则

OrganizationalUnitIdentifiers:
- Certificate: "cacerts/cacert.pem"
OrganizationalUnitIdentifier: "COP"

表示此组织由证书中具有 OU=COP 的根 CA PLUS 标识。 这也意味着fabric-ca内部的隶属关系也将是"COP">

最新更新