Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add multiple CA verification document #1629

Open
wants to merge 2 commits into
base: release-3.3.0-old
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 11 additions & 2 deletions 3.x/zh_CN/docs/tutorial/air/build_chain.md
Original file line number Diff line number Diff line change
Expand Up @@ -76,9 +76,10 @@ modify node e.g

### **`C`选项[**Optional**]**

脚本的命令,支持 `deploy` `expand`,默认为`deploy`:
脚本的命令,支持 `deploy` `expand`与`modify`,默认为`deploy`:
- `deploy`: 用于部署新节点。
- `expand` 用于节点扩容。
- `expand`: 用于节点扩容。
- `modify`: 用于改造普通节点为多CA节点。

### **`g`选项[**Optional**]**
用于设置群组ID,若不设置,则默认为group0。
Expand Down Expand Up @@ -268,6 +269,14 @@ Processing IP:127.0.0.1 Total:4

可选参数,当区块链扩容节点需要带监控时,可通过`-M`选项来指定prometheus配置文件在nodes目录的相对路径。

### **`N`多CA证书节点改造选项[**Optional**]**

可选参数,当区块链节点需要改造为支持多CA证书节点时,可通过`-N`选项来指定欲改造节点所在路径。

### **`u`多CA节点改造选项[**Optional**]**

可选参数,当区块链节点需要改造为支持多CA证书节点时,可通过`-u`选项来指定额外其他证书所在路径。

### **`h`选项[**Optional**]**

查看脚本使用用法。
Expand Down
87 changes: 87 additions & 0 deletions 3.x/zh_CN/docs/tutorial/air/multiple_ca.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
# 修改普通区块链为支持多CA证书区块链

标签: ``配置`` ``config.ini`` ``端口配置`` ``配置`` `` ca证书``

----

```eval_rst
.. important::
相关软件和环境版本说明!`请查看 <https://fisco-bcos-documentation.readthedocs.io/zh_CN/latest/docs/compatibility.html>`_
```

本节详细介绍如何将基于[部署工具(build_chain.sh)](./build_chain.md)搭建的4节点区块链系统改造为支持多CA证书的区块链系统。

## 1.改造所需文件

普通区块链改造为支持多CA证书区块链时,需要提前准备所需要的额外证书,用于生成扩容节点配置,需要准备的文件包括:

- **CA证书**: 此为用户想使用的其他证书和私钥,用于在指定节点使用此证书


## 2.改造节点

**步骤1:改造节点配置**

准备好配置文件后,使用建链脚本`build_chain.sh`改造区块链节点:

这里将以[搭建第一个区块链网络](../quick_start.md)为基础的四节点区块链改造为支持多CA证书的区块链,节点`node0`、`node1`、`node2`使用区块链生成的`ca.crt`作为ca证书,节点`node3`使用额外的`extraCa.crt`作为ca证书:

```shell
# 进入操作目录(Note: 进行本操作之前,请参考【搭建第一个区块链网络节点】部署一条Air版FISCO BCOS区块链)
$ cd ~/fisco

# 创建额外证书存放目录
$ mkdir ca

#将额外证书与私钥拷贝至刚刚创建的ca目录
$ cp -r ~/ca ca

# 调用build_chain.sh改造节点,新节点扩容到nodes/127.0.0.1/node4目录
# -C 指定为改造节点功能
# -N 指定将要改造的节点
# -u 指定除该节点自身证书外区块链所使用到的其他证书路径,本例中node0~node2使用区块链生成的节点证书,此选项指定为extraCa.crt的路径
$ bash build_chain.sh -C modify -N ./nodes/127.0.0.1/node0 -u ./ca/extraCa.crt
$ bash build_chain.sh -C modify -N ./nodes/127.0.0.1/node1 -u ./ca/extraCa.crt
$ bash build_chain.sh -C modify -N ./nodes/127.0.0.1/node2 -u ./ca/extraCa.crt

# node3此选项指定node0~node2证书路径
$ bash build_chain.sh -C modify -N ./nodes/127.0.0.1/node3 -u ./nodes/127.0.0.1/node0/conf/ca.crt
```

当节点输出下列信息说明生成扩容配置成功,输出的日志如下:

`[INFO] Modify node ca setting success`

改造节点的配置目录如下:

~~~
# tree nodes/127.0.0.1/node3/conf
nodes/127.0.0.1/node3/conf
├── ca.crt
├── cert.cnf
├── multiCaPath
│ └── 5c299a7d.0
├── node.nodeid
├── node.pem
├── ssl.crt
├── ssl.key
└── ssl.nodeid
~~~

其中`multiCaPath`目录为存放其他不同CA证书的路径,存放的CA证书以`subject_hash.0`的方式命名,`subject_hash`为证书的机构名称hash值。

**步骤2:启动改造完成后的节点**

~~~
bash nodes/127.0.0.1/start_all.sh
~~~

至此,通过`build_chain.sh`脚本完成了Air版本FISCO BCOS的改造多CA证书操作,`build_chain.sh`脚本使用方法请参考[这里](./build_chain.md)。Pro、Max版本FISCO BCOS的改造与Air版本一致。

国密版本改造方法在调用`build_chain.sh`脚本时需要添加国密选项,如下

~~~
bash build_chain.sh -C modify -N ./nodes/127.0.0.1/node0 -u ./ca/extraCa.crt -s
~~~

其他步骤均与此例一致。