证书生成
FISCO BCOS网络采用面向CA的准入机制,国密版FISCO BCOS要生成三级证书,包括:链证书,机构证书和节点证书。
生成链证书
FISCO BCOS提供generate_chain_cert.sh脚本生成链证书:
- # 进入脚本所在目录(设FISCO-BCOS位于~/mydata目录)
- cd ~/mydata/FISCO-BCOS/tools/scripts
- # 在~/mydata目录下生成国密版FISCO BCOS链证书
- #--------------------------------------------------------
- #-o : 生成的链证书所在路径,这里是~/mydata
- #-g :生成国密链证书,这里必须设置
- # 注: (若要手动输入链证书信息,请在下面命令最后加上-m选项)
- #--------------------------------------------------------
- $ bash ./generate_chain_cert.sh -o ~/mydata -g
- # 此时/mydata目录下生成链证书私钥gmca.key、证书gmca.crt和参数gmsm2.param
- $ ls ~/mydata/
- gmca.crt gmca.key gmsm2.param
- # 查看链证书脚本generate_chain_cert.sh使用方法:
- $ bash ./generate_chain_cert.sh -h
- Usage:
- -o <ca dir> Where ca.crt ca.key generate # CA证书生成目录
- -m Input ca information manually # 手动输入CA信息
- -g Generate chain certificates with guomi algorithms #生成国密版链证书
- -d The Path of Guomi Directory #GM证书生成脚本所在路径,默认为FISCO-BCOS/cert/GM
- -h This help
- Example:
- ./generate_chain_cert.sh -o /mydata -m # 非国密版链证书生成用法,手动输入证书信息
- ./generate_chain_cert.sh -o /mydata # 非国密版链证书生成用法,使用默认证书信息
- guomi Example:
- ./generate_chain_cert.sh -o ~/mydata -m -g # 国密版链证书生成用法,手动输入证书信息
- ./generate_chain_cert.sh -o ~/mydata -g # 国密版链证书生成用法,使用默认证书信息
生成机构证书
generate_agency_cert.sh 脚本用于生成机构证书:
- # 进入脚本所在目录(设FISCO-BCOS位于~/mydata目录)
- $ cd ~/mydata/FISCO-BCOS/tools/scripts
- #--------------------------------------------------------
- # -c: 链证书所在目录,这里是~/mydata
- # -o: 生成的机构证书所在目录,这里是~/mydata
- # -n: 机构证书名,这里是test_agency
- # -g: 生成国密机构证书,这里必须设置
- # 注: (若要手动输入机构证书信息,请在下面命令最后加上-m选项)
- #--------------------------------------------------------
- $ bash ./generate_agency_cert.sh -c ~/mydata -o ~/mydata -n test_agency -g
- # 此时~/mydata/test_agency目录下生成机构证书gmagency.crt和证书私钥gmagency.key
- $ ls ~/mydata/test_agency/
- gmagency.crt gmagency.key gmca.crt gmsm2.param
- # 查看generate_agency_cert.sh脚本用法
- $ bash ./generate_agency_cert.sh -h
- Usage:
- -c <ca dir> The dir of ca.crt and ca.key # 指定颁发机构证书的CA证书和私钥所在目录
- -o <output dir> Where agency.crt agency.key generate # 指定机构证书输出目录
- -n <agency name> Name of agency # 指定机构名
- -m Input agency information manually # 若设置,表明手动输入机构证书信息,否则使用默认信息
- -g Generate agency certificates with guomi algorithms # 生成国密版机构证书
- -d The Path of Guomi Directory
- -h This help
- Example:
- bash ./generate_agency_cert.sh -c /mydata -o /mydata -n test_agency # 非国密版机构证书生成示例
- bash ./generate_agency_cert.sh -c /mydata -o /mydata -n test_agency -m
- guomi Example: #国密版机构证书生成示例
- bash ./generate_agency_cert.sh -c ~/mydata -o ~/mydata -n test_agency -g
- bash ./generate_agency_cert.sh -c ~/mydata -o ~/mydata -n test_agency -m -g
生成节点证书
generate_node_cert.sh 脚本用于生成节点证书:
- # 进入脚本所在目录(设FISCO-BCOS位于~/mydata目录)
- $ cd ~/mydata/FISCO-BCOS/tools/scripts
- # 使用~/mydata/test_agency目录下机构证书为节点node0颁发证书,生成的证书置于~/mydata/node0/data目录下
- #--------------------------------------------------------
- # -a: 机构证书名,这里是test_agency
- # -d: 机构证书所在路径,这里是~/mydata/test_agency
- # -n: 节点名称,这里是node0
- # -o: 节点证书所在路径,这里是~/mydata/node0/data
- # -s: sdk证书名,这里是sdk1
- # -g: 生成国密节点证书,这里必须设置
- # (若要手动输入节点证书信息,请在下面命令最后加上-m选项)
- #--------------------------------------------------------
- $ bash ./generate_node_cert.sh -a test_agency -d ~/mydata/test_agency -n node0 -o ~/mydata/node0/data -s sdk1 -g
- # 此时在~/mydata/node0/data目录下生成节点证书&&客户端连接证书
- $ ls ~/mydata/node0/data -1
- ca.crt # 节点和客户端验证所需的CA证书
- ca.key
- client.keystore
- gmagency.crt
- gmca.crt
- gmennode.crt
- gmennode.key
- gmnode.ca
- gmnode.crt
- gmnode.json
- gmnode.key
- gmnode.nodeid
- gmnode.private
- gmnode.serial
- sdk1 #存储客户端连接节点证书
- server.crt
- server.key
- # 设编译好的web3sdk位于~/mydata/web3sdk目录下,则将客户端证书拷贝到相应目录:
- $ cp ~/mydata/node0/data/sdk1/* ~/mydata/web3sdk/dist/conf
- # 查看节点证书脚本generate_node_cert.sh用法
- $ bash ./generate_node_cert.sh -h
- Usage:
- -a <agency name> The agency name that the node belongs to # 为节点颁发证书的机构名
- -d <agency dir> The agency cert dir that the node belongs to # 机构证书所属目录
- -n <node name> Node name # 节点名
- -o <output dir> Data dir of the node # 节点证书存放目录
- -m Input agency information manually # 手动输入节点证书信息
- -r The path of GM shell scripts directory
- -g generate guomi cert # 产生国密版节点证书
- -s the sdk name to connect with the node # 产生国密版节点证书时,必须产生sdk证书,-s指定sdk名称
- -h This help
- Example: # 非国密版节点证书生成示例
- bash ./generate_node_cert.sh -a test_agency -d /mydata/test_agency -n node0 -o /mydata/node0/data
- bash ./generate_node_cert.sh -a test_agency -d /mydata/test_agency -n node0 -o /mydata/node0/data -m
- guomi Example: #国密版FISCO-BCOS节点证书生成示例
- bash ./generate_node_cert.sh -a test_agency -d ~/mydata/test_agency -n node0 -o ~/mydata/node0/data -s sdk1 -g
- bash ./generate_node_cert.sh -a test_agency -d ~/mydata/test_agency -n node0 -o ~/mydata/node0/data -m -s sdk1 -g
SDK证书
生成节点证书时,会在节点目录下同时生成SDK证书,如上例中node0的sdk证书位于/mydata/node0/data/sdk1
目录。也可使用gmsdk.sh
脚本手动生成sdk证书,但生成后需要:
- # 进入脚本所在目录(设FISCO-BCOS位于~/mydata目录)
- $ cd ~/mydata/FISCO-BCOS/tools/cert/GM
- # 执行国密版SDK生成脚本gmsdk
- #--------------------------------------------------------
- # 注: 生成SDK证书时,不能输入空口令,口令长度至少为6个字符
- #--------------------------------------------------------
- $ bash ./gmsdk.sh sdk1 #生成的sdk证书位于sdk1目录下
- # 用新生成的sdk证书sdk要连接的节点相关证书(设sdk要连接node0)
- $ cp sdk1/* ~/mydata/node0/data/
注意事项
FISCO-BCOS采用三级证书链【链证书–> 机构证书—> 节点证书】认证,同一条链的所有机构证书必须由同一个链证书颁发,节点间证书认证才能成功。
当前内容版权归 FISCO BCOS 或其关联方所有,如需对内容或内容相关联开源项目进行关注与资助,请访问 FISCO BCOS .