FISCO BCOS上使用第三方CA证书底层节点部署实操

2023-10-30

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-documentation.readthedocs.io/zh_CN/latest/docs/manual/certificate_list.html#id2

备注:测试过程中节点私钥和请求证书文件统一管理,但在生产环境中节点私钥应由各机构管理员进行生成,提交给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/generator.git

  • 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的代码完全开源且免费下载地址:GitHub - FISCO-BCOS/FISCO-BCOS: FISCO BCOS是由微众牵头的金链盟主导研发、对外开源、安全可控的企业级金融区块链底层技术平台。 单链配置下,性能TPS可达万级。提供群组架构、并行计算、分布式存储、可插拔的共识机制、隐私保护算法、支持全链路国密算法等诸多特性。 经过多个机构、多个应用,长时间在生产环境中的实践检验,具备金融级的高性能、高可用性及高安全性。FISCO BCOS is a secure and reliable financial-grade open-source blockchain platform. The platform provides rich features including group architecture, cross-chain communication protocols, pluggable consensus mechanisms, privacy protection algorithms, OSCCA-approved (Office of State Commercial Cryptography Administration) cryptography algorithms, and distributed storage. Its performance, usability, and security have been testified by many institutional users and successful business applications in a live production environment.

2、如果你想随时随地与圈内最活跃、最顶尖的团队畅聊技术话题、参与丰富的社区活动,请添加小助手微信(FISCOBCOS010进入FISCO BCOS技术交流群

了解更多干货内容,请关注FISCO BCOS开源社区公众号,访问FISCO BCOS代码仓库可下载项目所有源代码:https://github.com/FISCO-BCOS/FISCO-BCOS,欢迎点击页面右上角star收藏,获取最新版本。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

FISCO BCOS上使用第三方CA证书底层节点部署实操 的相关文章

  • 区块链数字签名、验签,以及椭圆曲线算法JS库—elliptic的使用

    目录 一 简介 二 椭圆曲线密码elliptic 1 安装elliptic和js sha3 2 Keccak256 3 签名过程 一 简介 数字签名是一种将类似现实世界中物理签名 盖章
  • 在区块链世界中的token到底是什么?

    token的概念很广泛 在计算机领域中 无论是基础的网络架构还是服务系统的身份验证等 都有涉及到token的概念 然而在这里我想阐述的是在区块链世界中的token是什么 相信对区块链有些了解的朋友 都或多或少的听过或者看过关于token的描
  • 以太坊系列之十五: 以太坊数据库

    以太坊数据库中都存了什么 以太坊使用的数据库是一个NOSQL数据库 是谷歌提供的开源数据leveldb 这里尝试通过分析以太坊数据库存储了什么来分析以太坊可能为我们提供哪些关于区块链的API 存储内容 NOSQL是一个key value数据
  • Gikee 大数据

    据Gikee数据显示 今日13 58分 地址 1MAhRt279uYmVC1dUxKR6dWwEULBJT34Nh 向地址 1Fc4QQu6nEc4snAe4HAb4Kryd8koH89pYk 转了34010个BTC 价值约2 17亿美元
  • 区块链应用开发(智能合约的开发和WeBASE合约IDE的使用)

    文章目录 四 智能合约的开发和WeBASE合约IDE的使用 一 实验概述 二 实验目标 三 实验环境及建议 四 实验步骤 4 1 启动Webase 4 2 智能合约开发 4 2 1 合约功能设计 4 2 2 存证合约开发 4 2 3 工厂合
  • 区块链程序要怎么去测试?

    区块链程序开发越来越多 区块链怎么做测试 让大家很好奇 与传统测试不同的是区块链系统边界模糊 不管是是独立的应用程序 还是客户端 服务器模式的应用程序 传统软件都具备明显的系统边界 可以通过UI用户界面或者客户端去进行测试 区块链底层则不同
  • 初识区块链

    这篇博客主要从社会和经济层面来直白的向大家讲述区块链是什么 比特币是什么 分享的内容仅限于自己的理解 里面会存在本人的观点 但是希望读者能有自己的独立看法 审慎的阅读本文 甚至能考虑到我的认知不足导致的偏差 不为任何投资电子货币者提供意见
  • 阿里巴巴都害怕的区块链电商到底是什么?

    近日 区块链权威机构中国通信工业协会区块链专业委员会 CCIAPCB 发出倡议 联合各界将中共中央政治局10月24日集体学习区块链主席讲话日作为 区块链中国日 此次中央将区块链技术放在了国家战略层面高度上 让区块链一时间成了全民热点 特别是
  • 不要向全网放通你的ETH系列节点的rpc接口访问权限!!!

    北京时间 2021年 8月 27 日 20 点 50 分左右 区块高度 13107518 一个共识漏洞 利用了 geth v1 10 8 中修复的共识漏洞 袭击了以太坊主网 以太坊因遭到攻击而导致分叉 攻击的根本原因在于 Geth 旧版本在
  • 链语BTChat力推“加密+社交” 引领区块链新社交时代

    近些年来互联网的发展日新月异 大数据化 人工智能 物联网这些都在成为人们生活中触手可及的东西 而区块链技能则被认为是继互联网之后最具颠覆性的创新技术 此前区块链技术在金融服务业 游戏 供应链等不同的产业中都有着广泛应用 同样的对于社交平台而
  • AWS动手实验 - 创建一个Web3网站

    实验操作和录播 亚马逊云科技开发者社区 web3 dApp demo README CN md at main Chen188 web3 dApp demo GitHub 注意事项 按照操作手册进行即可 需要注意到的几个地方 1 EC2 的
  • 圆石说│彭一鸣:运用区块链技术赋能实体旅游产业;微软开放6万项专利包括一个开源区块链项目……

    智联招聘 区块链岗位需求主要集中在一线和新一线城市 智联招聘报告显示 从目前区块链职位的城市分布来看 该领域的岗位需求主要集中在一线和新一线城市中 其中 北京 上海和深圳位于第一梯队 职位占比分别达到24 20 和10 杭州 广州和成都紧随
  • Fabric private data入门实战

    Hyperledger Fabric private data是1 2版本引入的新特性 fabric private data是利用旁支数据库 SideDB 来保存若干个通道成员之间的私有数据 从而在通道之上又提供了一层更灵活的数据保护机制
  • "我为区块链赋能实体经济代言"第二批代言人:复旦大学张江研究院教授陈文君

    我为区块链赋能实体经济代言 推出以来 颇受行业关注 为进一步规范行业发展 落实区块链赋能实体经济的目标 为行业发展 正本清源而发声 新一轮的 我为区块链赋能实体经济代言 于9月3日重磅启动 我为区块链赋能实体经济代言100人第二批 第3位代
  • 区块链中的哈希算法

    区块链中的密码学 密码学在区块链中的应用主要有两个 哈希算法与非对称加密算法 这次主要对哈希算法进行详细的说明 哈希算法 哈希算法的特点有 1 输入可以为任意大小的字符串 2 产生固定大小的输出 3 可以在合理的时间内算出输出值 若要满足密
  • hyperledger fabric介绍

    一 Hyperledger Fabric介绍 2015年 Linux基金会启动了Hyperledger项目 目标是发展跨行业的区块链技术 Hyperledger Fabric是Hyperledger中的一个区块链项目 包含一个账本 使用智能
  • 期货ctp基础知识(合约,开仓,平仓,做多,做空,保证金,手续费)

    期货ctp教程地址 期货ctp教程 合约 期货买卖的是合约 股票买卖的是股票 做多和做空 2 1 做多 你就是买入看涨 所以买这个动作对应的指令就是 买开仓 当你赚了或者止损的时候 就要把合约卖掉 对应的指令就是 卖平仓 2 2 做空 你先
  • 什么是虚值期权?什么是深度虚值期权?

    在期权市场里有一种合约的价格往往比较便宜 它就是虚值期权 也是最受欢迎的期权之一 虚值期权也就是高杠杆和波动被世人所爱 久闻的一日192倍行情就是出自于虚值期权 下文科普什么是虚值期权 什么是深度虚值期权 一 虚值期权是什么 虚值合约因为价
  • 期货和期权哪个风险更大?有哪些相同和不同的地方?

    期货和期权这两个都是高风险 高收益的投资工具是两个相同的部分 而期货呢是保证金交易理论上亏损是无限的 而期权呢买入期权的话最大亏损也就是权利金 这个是两者的最大区别 下文科普期货和期权哪个风险更大 有哪些相同和不同的地方 本文来自 期权酱
  • 申泰勇教练的独家人物化身系列即将登陆 The Sandbox

    申泰勇 Shin Tae yong 教练是足球界的传奇人物 他来到 The Sandbox 推出了自己的专属人物化身系列 作为前 K 联赛中场球员和印尼队取得历史性成就的幕后教练 他的传奇经历现在已经影响到了虚拟世界 向过去 现在和未来致敬

随机推荐

  • 05-----检测某个端口是否开放和查看服务器防火墙状态

    1 检测某个端口是否开放 nc vv 192 168 1 117 8890 结果 2 查看服务器防火墙状态 service firewalld status 或者使用下面的命令查看防火墙状态 主要看系统 systemctl status f
  • CCNP学习考试心得(转)

    CCNP学习考试心得 转 more 当计算机屏幕上显示 Congralation时 我不禁长出一口气 心中想 终于考完了 我所说的终于考完是指 我终于完成了ccnp的考试 四个月的学习 对于某些人来说可能太长了 但是要真正掌握ccnp的内容
  • C++学习系列之打印金字塔和倒金字塔

    实例要求 用符号 打印一个金字塔 用符号 打印一个倒金字塔 金字塔代码 include
  • VSCode中开发JavaWeb项目(Maven+Tomcat+热部署)

    1 安装插件 首先需要安装所用到的插件 分别用来支持Java 热部署和Tomcat服务器的插件 在插件市场中搜索Java 第一个就是Extension Pack for Java 内置了6个依赖插件 直接一键安装即可 然后是热部署插件 市场
  • python recvfrom设置超时_如何在python的socket recv方法上设置超时?

    我需要在python的socket recv方法上设置超时 怎么做 仅供参考 如果您选择使用超时 您需要知道如何处理超时 这个SO问题讨论了超时发生时的处理 stackoverflow com questions 16745409 典型的方
  • elementui实现横向时间轴_横向时间轴(进度条)

    1 2 3 4 5 6 7 8 9 10 timeline box 11 width 100 12 height 8rem 13 position relative 14 15 16 timeline container 17 height
  • 2023 年及未来最佳的软件构建工具

    当今世界 加快任务完成速度和尽可能减少人力投入是一切事物都需要关注的问题 软件开发也不例外 无论你在哪个领域 游戏 区块链 还是应用创建 软件开发的竞争都异常激烈 只要能够帮助到你 采用任何手段都无关紧要 而这也正是构建工具的作用 这些工具
  • Linux——I/O复用(2)—— poll和epoll

    poll原型 poll系统调用和select类似 也是在指定时间内轮询一定数量的文件描述符 以 测试其是否有就绪者 int poll struct pollfd fds int nfds int timeout fds struct pol
  • JAVA笔记--异常处理(第一篇)

    目录 一 异常概念 1 什么是异常 2 try与catch关键字 二 try catch finally 1 catch 2 异常处理过程分析 3 finally 三 throw throws与异常规则 1 throw throws 2 异
  • Unity3d 通过json文件使用C#脚本代码生成多个相机

    首先设计一个存储相机类型的json类如下 using UnityEngine using System using System Collections Serializable public class Cameras public in
  • matlab基本粒子群算法实现(四)

    最后在炼数成金那边找到了很好的一篇教程 在这里把它整理一下 做个粒子群算法的收尾 main m I 清空环境 clc clear II 绘制目标函数曲线 figure x y meshgrid 5 0 1 5 5 0 1 5 z x 2 y
  • 阿里巴巴一道笔试题

    其实这是谷歌的一道面试题 给定能随机生成整数1到5的函数 写出能随机生成整数1到7的函数 惭愧 阿里的笔试题做错了 说实话 以前没见过 见过了就把搞懂 阿里题目 给定rand 7 表示能生成1 7的随机数 使用四则运算和循环等控制语句 可以
  • Python基础之循环语句

    Python基础之循环语句 一 循环语句介绍 1 循环语句理解 2 循环语句示意图 二 循环语句的分类 三 循环控制语句 四 while循环 1 while死循环 2 while条件循环 五 break和continue 1 break使用
  • TCP三次握手和四次挥手 详解

    首先了解下TCP报文 16位源端口号 16位的源端口中包含初始化通信的端口 源端口和源IP地址的作用是标识报文的返回地址 16位目的端口号 16位的目的端口域定义传输的目的 这个端口指明报文接收计算机上的应用程序地址接口 32位序号 32位
  • QProcess调用外部程序阻塞等待问题解决

    QProcess调用外部程序阻塞等待问题解决 简介 第一种 第二种 简介 在使用QProcess调用外部程序时 可能会遇到两种场景 1 调用起来之后就不管 直接运行后面的代码 2 调用起来后需要等待外部程序执行完成 在继续运行下面的代码 第
  • jdbc连接数据库获取所有表,表的字段及类型之Oracle

    https blog csdn net hhhliushen article details 105272439 昨天写的这篇jdbc连接数据库获得所有表 表的所有字段及类型对于mysql来说速度还是可以的 但是对于oracle来说 真的是
  • springboot工程中生成二维码(Java)

    需求 在系统中生成一个二维码 用户保存下来并分享出去 其他人扫描之后跳到我们的一个活动详情页 查看此活动的内容 需求分析 从以上的需求中 可以提炼出以下几点 当用户点击生成二维码的时候 我们要拿到用户生成的二维码是关于哪个活动的 请求来到后
  • 前端工程师的摸鱼日常(19)

    图为恐子真身 史记记载恐子九尺六寸高 根据春秋的尺度换算 有一米九至两米多高 人皆畏之 一米九的山东大汉 手下七十二堂口 帮派 三千门生 小弟 由他弟子所编写的 抡语 这是为我们讲述了 春秋道上的规矩 首先 仁义礼智信 并不是字面上的意思
  • Matlab:生成特定范围的随机数

    Matlab 生成特定范围的随机数 在Matlab中 我们可以使用rand函数来生成随机数 但有时候我们只需要在特定的范围内生成随机数 这时候 我们可以使用Matlab提供的一些函数来实现 生成0到1之间的随机数 如果需要生成0到1之间的随
  • FISCO BCOS上使用第三方CA证书底层节点部署实操

    CA证书怎么生成 节点相互验证证书时会交叉验证吗 对于社区常遇到的此类问题 分享一些个人使用第三方CA证书部署底层节点的经验 希望可以给大家一些借鉴与参考 为什么要对第三方CA证书进行改造 首先 说明一下我进行第三方CA证书改造的背景和原因