MSP结构
本地MSP文件夹包含以下子文件夹:
- 一个 admincerts 目录,其中包含PEM文件,每个PEM文件对应一个管理员证书
- 一个 cacerts 目录,其中包含PEM文件,每个PEM文件对应一个根CA证书
- (可选的)一个 intermediatecerts 目录,其中包含PEM文件,每个PEM文件对应一个中间CA证书
- (可选的)一个文件 config.yaml,用来配置所支持的组织单位(OU)和身份分类(参见下面对应的部分)
- (可选的)一个 crls 目录,包含证书撤销列表(CRLs)
- 一个 keystore 目录,包含一个PEM文件,代表该节点的签名密钥,我们强调当前不支持RSA的密钥形式
- 一个 signcerts 目录,包含一个PEM文件,代表该节点的X.509证书
- (可选的)一个 tlscacerts 目录,其中包含PEM文件,每个PEM文件对应一个TLS根CA证书
- (可选的)一个 tlsintermediatecerts 目录,其中包含PEM文件,每个PEM文件对应一个TLS中间CA证书
上图显示了本地MSP在文件系统中的子文件夹
-
config.yaml: 通过启用“Node OUs”和定义可接受的角色来配置Fabric中的身份分类特性。
-
cacerts: 此文件夹包含此MSP代表的组织所信任的根CA的自签名X.509证书列表。此MSP文件夹中必须至少有一个根CA证书。
这是最重要的文件夹,因为它确定了派生所有其他证书的必要CA,拥有这些证书才能被视为对应组织的成员,从而形成信任链。 -
intermediatecerts: 此文件夹包含该组织所信任的中间CA的X.509证书列表。每个证书必须由MSP中的一个根CA,或者其本身颁发的CA链最终会指向一个受信任的根CA的任何中间CA,进行签名。
一个中间CA可能代表组织的不同细分(如ORG1-MANUFACTURING和ORG1-DISTRIBUTION对应于ORG1),或者组织本身(如果商业CA被用于组织的身份管理,则可能是这种情况)。在后一种情况下,中间CA可以用来表示组织的细分。这里你可以找到关于MSP配置的最佳实践的更多信息。请注意,一个正常工作的网络可能没有中间CA,在这种情况下,这个文件夹将是空的。
与根CA文件夹一样,该文件夹也定义了CA,且证书必须从该CA颁发,才能被视为组织的成员。 -
admincerts (在Fabric的1.4.3及以上版本被弃用): 此文件夹包含一个身份列表,这些身份定义了具有此组织管理员角色的参与者。通常,这个列表中应该有一个或多个X.509证书。
注意: 在Fabric v1.4.3之前,管理员是通过显式地将证书放在peer节点本地MSP目录的admincerts文件夹中来被定义的。Fabric的1.4.3及以上版本不再需要此文件夹中的证书。 相反,建议在用户注册到CA时,使用admin角色来指定节点管理员。然后,该标识被节点OU角色在它们的signcert中识别为admin。**提醒一下,为了使用管理员角色,必须在以上的config.yaml配置文件中,通过将“Node OUs”设置为Enable: true来启用“identity classification”特性。**我们稍后将进一步探讨这个问题。
提醒一下,对于通道MSP,仅有参与者具有管理员角色这个条件,并不能说明他们可以管理特定的资源。给定身份在管理系统中拥有的实际权限是由管理系统资源的 策略 决定的。例如,通道策略可能指定ORG1-MANUFACTURING管理员拥有向通道添加新组织的权限,而ORG1-DISTRIBUTION管理员没有这样的权限。 -
keystore: (私钥) 这个文件夹是为peer节点或排序节点的本地MSP(或客户端的本地MSP)定义的,其包含节点的私钥。此私钥用于签名数据——例如,作为背书阶段的一部分,用其签名交易提案响应。
此文件夹对于本地MSP是强制性的,并且必须准确地包含一个私钥。显然,对该文件夹的访问必须仅限于对peer节点负有管理责任的用户。
通道MSP配置不包含此文件夹,因为通道MSP仅提供身份验证功能,而不提供签名功能。
注意: 如果您使用硬件安全模块(HSM)进行私钥管理,此文件夹将为空,因为私钥由HSM生成并存储在HSM中。 -
signcert: 对于 Peer 节点或排序节点(或在客户端的本地 MSP 中),此文件夹包含 CA 发行的节点签名密钥。该证书表明节点的身份,与这个证书相对应的私钥可以用于生成签名,并且该签名可以被任何拥有这个证书的人验证。
此文件夹对于本地 MSP是强制性的,并且必须包含一个准确的公钥。显然,对该文件夹的访问必须仅限于对 Peer 节点负有管理责任的用户。
通道 MSP的配置不包含此文件夹,因为通道MSP仅提供身份验证功能,而不提供签名功能。 -
tlscacerts: 此文件夹包含受此组织信任的根CA的自签名X.509证书列表,用于进行节点之间基于TLS的安全通信。TLS通信的一个例子是peer节点需要连接到排序节点,以便它能接收到账本更新数据。
MSP和TLS信息与网络内的节点相关——peer节点和排序节点,换句话说,而不是与使用网络的应用程序和管理程序相关。
此文件夹中必须至少有一个TLS根CA证书。有关TLS的更多信息,请参见使用传输层安全协议(TLS)保护通信。 -
tlsintermediatecacerts: 此文件夹包含一个受该MSP所代表的组织信任的中间CA证书列表,用于进行节点之间基于TLS的安全通信。当商业CA被用作一个组织的TLS证书时,此文件夹特别有用。与成员资格中间CA类似,TLS中间CA的指定是可选的。
-
operationscerts: 此文件夹包含与Fabric运维服务API通信所需的证书。
通道MSP包含以下附加文件夹:
Revoked Certificates: 如果参与者的身份被撤销,关于该身份的识别信息——而不是身份本身——会被保存在这个文件夹中。对于基于x.509的身份,这些标识符是被称为Subject Key Identifier(SKI)和Authority Access Identifier(AKI)的字符串对,并且在使用证书时被检查,以确保证书没有被撤销。
尽管这个列表在概念上与CA的证书撤销列表(CRL)相同而已,但它也与组织成员的撤销有关。因此,通道MSP的管理员可以通过发布CA的更新过的CRL,快速从组织中撤销参与者或节点。这个“撤销列表中的列表”具有可选择性。只有当证书被撤销时,它才会被填充。