# 证书管理 ## 简介 ChainMaker区块链网络中使用的证书类型有三大类 `CA证书` `节点证书` `用户证书`。
`CA证书`: 可以是根CA证书、中间CA证书、自签CA证书,其余两类证书都是使用`CA证书`签名生成。
`节点证书`: 细分为共识节点、同步节点、轻节点使用的证书。同步节点和轻节点证书类型相同。
`用户证书`: 细分为管理员用户证书、普通用户证书。分别对应管理员权限和普通用户权限。
下面详细介绍ChainMaker网络中各类证书。 ## 证书 - [CA证书](#rootCert) - [节点证书类](#nodeCert) - [用户证书类](#userCert) ### CA证书 一般每个组织一个`CA证书`。
`CA证书`可通过 [chainmaker-cryptogen](../dev/证书生成工具.md) 或者自建的 [CA证书服务](./CA证书服务.md) 生成,也可通过向证书颁发机构申请获得。
本组织的所有`节点证书`以及`用户证书`都是由此`CA证书`签发生成。
### 节点证书类 每个组织至少有一个共识节点,也可以部署多个。
每个组织可以有若干同步和轻节点,也可以不部署。
不管什么类型的节点,每个节点都会有一个`节点TLS证书`和一个`节点SIGN证书`,其证书字段详见[节点证书、用户证书字段](#certFields)

- 共识节点 - 节点TLS证书 用于跟客户端建立tls链接,使用`CA证书`签发获得,证书字段信息如下示例:
```shell O=wx-org1.chainmaker.org OU=consensus // 共识节点证书必须为consensus CN=consensus1.wx-org1.chainmaker.org sans=localhost // 用于tls的证书sans字段必填 ``` - 节点SIGN证书 用于签名验签等等,使用`CA证书`签发获得,证书字段信息如下示例:
```shell O=wx-org1.chainmaker.org OU=consensus // 共识节点证书必须为consensus CN=consensus1.wx-org1.chainmaker.org ``` - 同步节点、轻节点 同步节点与轻节点的证书规格完全一致,以下示例都互相适用,不再重复举例。 - 节点TLS证书 用于跟客户端建立tls链接,使用`CA证书`签发获得,证书字段信息如下示例:
```shell O=wx-org1.chainmaker.org OU=common // 同步节点/轻节点证书必须为common CN=consensus1.wx-org1.chainmaker.org sans=localhost // 用于tls的证书sans字段必填 ``` - 节点SIGN证书 用于签名验签等等,使用`CA证书`签发获得,证书字段信息如下示例:
```shell O=wx-org1.chainmaker.org OU=common // 同步节点/轻节点证书必须为common CN=consensus1.wx-org1.chainmaker.org ``` ### 用户证书类 用户证书类分为`admin证书类`分配给管理员用户使用和`client证书类`分配给普通用户使用。
每个组织至少有一个管理员用户和若干个普通用户
不管什么类型的用户,每个用户都会有一个`用户TLS证书`和一个`用户SIGN证书`,其证书字段详见[节点证书、用户证书字段](#certFields)

- admin证书类 - 用户TLS证书 用于跟节点建立tls链接,使用`CA证书`签发获得,证书字段信息如下示例:
```shell O=wx-org1.chainmaker.org OU=admin // 管理员用户必须为admin CN=admin1.wx-org1.chainmaker.org ``` - 用户SIGN证书 用于签名验签等等,使用`CA证书`签发获得,证书字段信息如下示例:
```shell O=wx-org1.chainmaker.org OU=admin // 管理员用户必须为admin CN=admin1.wx-org1.chainmaker.org ``` - client证书类 - 用户TLS证书 用于跟节点建立tls链接,使用`CA证书`签发获得,证书字段信息如下示例:
```shell O=wx-org1.chainmaker.org OU=client // 普通用户必须为client CN=client1.wx-org1.chainmaker.org ``` - 用户SIGN证书 用于签名验签等等,使用`CA证书`签发获得,证书字段信息如下示例:
```shell O=wx-org1.chainmaker.org OU=client // 普通用户必须为client CN=client1.wx-org1.chainmaker.org ``` ## 链上变更 ### 组织CA证书类 - [使用cmc新增组织CA证书](../dev/命令行工具.html#chainConfig.addOrgRootCA) - [使用cmc删除组织CA证书](../dev/命令行工具.html#chainConfig.delOrgRootCA) - [使用cmc更新组织CA证书](../dev/命令行工具.html#chainConfig.updateOrgRootCA) - [使用cmc吊销、冻结组织CA证书](../dev/命令行工具.html#certManage) ## 附件 ### 节点证书、用户证书字段 节点证书和用户证书字段通用 | 字段 | 含义 | 规范 | | :----: | :----: | :----: | | C | country 国家 | 如:CN | | L | locality 位置(城市) | 如:Guangzhou | | ST | state 省份(州) | 如:Guangdong | | O | organization 组织 | 对应chainmaker的组织ID(orgId)如:wx-org1.chainmaker.org | | OU | organizationalUnit 组织单位 | 对应chainmaker里的用户角色:consensus/common/admin/client | | CN | commonName 常用名 | chainmaker里通常以用户ID+组织ID形式,如:ca.wx-testorg.chainmaker.org、admin1.wx-org1.chainmaker.org、consensus1.wx-org1.chainmaker.org、client1.wx-org1.chainmaker.org | | expireYear | 证书有效期 | 以年为单位 如:2 | | sans | 节点证书的地址信息 | 可为节点地址IP,也可以是节点域名 如:consensus1.wx-org1.chainmaker.org |