CA证书怎么生成?节点互相验证证书时会穿插验证吗?对于社区常遇到的此类问题,分享一些集体应用第三方CA证书部署底层节点的教训,心愿能够给大家一些借鉴与参考。

为什么要对第三方CA证书进行革新?

 
首先,阐明一下我进行第三方CA证书革新的背景和起因:

社区内常常有人会问到第三方CA证书的革新问题,个人感觉这是大家都关注的要点。

在咱们的一些我的项目中,业务方指定要应用第三方CA证书,理论的生产需要也要求咱们进行CA革新。

在司法畛域区块链存证场景中,须要由具备电子认证许可证书机构出具的认证证书能力作为电子认证。

鉴于以上三点,我感觉大家对如何进行第三方CA证书革新都很关注。

FISCO BCOS技术文档中提供了CFCA证书革新的案例,但在一些细节上还待欠缺,因而我想写一篇教程,联合生产环境革新、第三方CA配合、合规性、技术实现等内容具体阐明,看看是否对其余社区用户有所帮忙。

除了司法畛域存证,还有哪些场景须要由第三方CA机构参加?

基本上用到CA证书的区块链场景都有可能用到第三方CA证书,是否采纳第三方CA证书次要思考:

  • 联盟链是否须要第三方CA机构背地的相干资质。
  • 联盟链中,参与方对节点准入治理、以及后续控管是否须要第三方CA机构作为公正机构来签发证书,避免自建CA体系中存在任意签发证书导致节点作恶等问题。

两级证书模式下,为什么须要配置白名单列表?如果不配置会有什么问题?

两级证书模式下应用第三方提供CA证书作为链证书,如果不配置白名单,只有是CA证书签发节点证书都能够连贯到这条链上,配置白名单能够实现准入拦挡。

实操步骤教学

 
接下来,咱们来看看应用第三方CA证书部署底层节点的具体实操步骤。

此次革新要点为:

  • FISCO BCOS的底层CA缺省提供的是三级模式,链证书-->机构证书-->节点证书;
  • 事实环境中CA方尽管能够提供三级签发的证书,但在一些场景下有合规危险;
  • 目前咱们采纳的做法是剔除机构证书,从链证书-->节点证书的签发,其中链证书由CA方提供的CA.crt,配合白名单机制应用实现根底底层节点部署。

环境筹备

  1. 两台测试服务器:118.25.208.8、132.232.115.126
  2. 操作系统为ubuntu:18.04
  3. openssl 工具应用ubuntu 18.04自带 openssl 1.1.1
  4. 选用一般版FISCO BCOS 2.5.0 版本,节点应用的节点证书算法为EC secp256k1曲线
  5. 联合【白名单机制】一起应用

https://fisco-bcos-documentat...

备注:测试过程中节点私钥和申请证书文件对立治理,但在生产环境中节点私钥应由各机构管理员进行生成,提交给CA方,私钥各自留存。

根底证书筹备

生成根底节点私钥和节点证书申请文件。

采纳openssl 工具,要求1.0.2版本以上,生成对应的节点私钥和节点证书申请文件、以及对应的node.nodeid(nodeid 是公钥的十六进制示意)。

阐明:以下每个节点第四步生成node.nodeid 中的node.key ,都是对应节点的cert_IP_port.key 批改的,该操作是底层要求的。

  • 生产节点1 node_118.25.208.8_30300 相干文件

  • 生产节点2 node_118.25.208.8_30301 相干文件

  • 生产节点3 node_132.232.115.126_30300 相干文件 

  • 生产节点4 node_132.232.115.126_30301 相干文件

阐明:FISCO BCOS V2.5版本中,采纳了私钥及EC secp 256k1曲线算法。

CA方进行节点证书签发

提交各个节点的node.csr 文件给CA方,CA方返回一张CA.crt 证书作为链证书,返回四张pem格局的节点证书。

阐明:FISCO BCOS中,CA方返回证书的模式为:root -> node -issuer,节点证书中糅合issuer证书内容。

建链

  • step 1 :下载国内镜像,cd ~/ && git clone https://gitee.com/FISCO-BCOS/...
  • step 2 :实现装置,cd ~/generator && bash ./scripts/install.sh实现装置,如果输入 usage: generator xxx,则示意装置胜利
  • step 3 :获取节点二进制,拉取最新fisco-bcos二进制文件到meta中(国内cdn),如果输入 FISCO-BCOS Version : x.x.x-x,则示意胜利
  • step 4 :机构调配

选用 118.25.208.8 所属机构作为机构A,并由机构A负责创世区块生成

选用 132.232.115.126 所属机构作为机构B

  • step 5 :将CA方提供CA.crt 证书作为链证书

在机构A所属目录手动创立dir_chain_ca目录,并将CA.crt 放到dir_chain_ca目录中

  • step 6 :在机构A和机构B的meta目录下进行节点证书迁徙

在meta目录中,手动创立对应的节点目录,其中机构A为:node_118.25.208.8_30300、node_118.25.208.8_30301,机构B为:node_132.232.115.126_30300、node_132.232.115.126_30301

每个目录须要寄存对应的节点证书和节点私钥、节点Id,将CA方生成的节点证书、以及最后筹备的节点id、节点私钥等文件对立散发至对应的节点目录,具体如图:

step 7:机构A收集所有节点证书
在机构A的meta目录下,收集对应的节点证书,用于后续生成创世区块。如图所示:

  • step 8:手动配置机构A批改conf文件夹下的group_genesis.ini,生成创世区块
  • step 9:批改机构A、机构B的conf目录下的node_deployment.ini;其中p2p 地址为外网地址、rpc、channel 地址为内网地址
  • step 10:在机构meta目录下手动创立peers.txt 文件

机构A中创立 peers.txt、peersB.txt,机构B 创立 peers.txt、peersA.txt

其中以机构A为例,peers.txt 内容如下:

  • step 11:机构A和机构B中生成节点,在机构A的generator中执行命令./generator --build_install_package ./meta/peersB.txt ./nodeA生成机构A的对应节点;在机构B的generator中执行命令./generator --build_install_package ./meta/peersA.txt ./nodeB生成机构B的对应节点
  • step 12:运行两个机构的节点:bash ./nodeA/start_all.sh和bash ./nodeB/start_all.sh;共识状态失常则如图所示:

  • step 13:控制台部署并进行合约部署测试

针对机构A和机构B对应的控制台操作后果进行比对,两者数据统一,确保共识失常

  • step 14:在对应节点的config.ini 配置白名单

至此,咱们就实现了第三方CA证书联合底层节点部署的革新。

从流程上看,次要是在链证书-->机构证书-->节点证书的生成流程扭转了,以及须要在meta目录下进行手动创立peers.txt文件和节点目录等。

结缘FISCO BCOS开源社区

 
说起我与FISCO BCOS开源社区的结缘也源于CA证书,在一次政企我的项目对接中,业主方要求区块链底层需适配国密,并应用业主方指定的CA证书。

晚期咱们团队应用的是其余区块链底层,无奈间接适配国密,且革新难度大、周期长、老本高;思考到后续国内不少我的项目会波及到适配国密和CA革新等,咱们迫切需要一套齐备的区块链底层反对上述需要。通过圈内敌人介绍,理解到FISCO BCOS,在进行深刻技术调研、可行性剖析后最终抉择了FISCO BCOS。

FISCO BCOS开源社区中创设了凋谢交换的气氛,欢送大家在社区中与我交换探讨。

1、FISCO BCOS的代码齐全开源且收费下载地址:https://github.com/FISCO-BCOS/FISCO-BCOS2、增加小助手微信(FISCOBCOS010),进入FISCO BCOS技术交换群,随时随地与圈内最沉闷、最顶尖的团队畅聊技术话题、参加丰盛的社区活动。