hyperledger-fabirc1.2-ca-server的生产示例,带TLS

在fabirc-samples/first-network中启动网络,其ca证书是利用crypto的工具生成的,但是在正式生产中,我们不能这样,可以借助fabric-ca-server ,fabric-ca-client .

本示例演示,一个orderer 三个peer,一个rootca,一个middleca,利用middleca 生成证书。

ca peer orderer
root.fp.com middle.fp.com peer0.org1.fp.com peer1.org1.fp.com peer2.org1.fp.com orderer.fp.com
  1. 新建fabric-fp-network文件夹下来咱们的东西都在该文件夹下进行
  2. 编写ca的docker文件docker-ca.yaml ,一个rootca,一个middleca,container名称



    完成之后,docker-compose -f docker-ca.yaml up -d 启动docker容器,完事之后docker ps -a 查看是否启动成功。

如果不在docker中启动ca,需要在本地启动执行:

  • export FABRIC_CA_HOME=fabric-fp-network/ca/middleCA
  • fabric-ca-server start -b admin:adminpw --cfg.affiliations.allowremove --cfg.identities.allowremove
  • export FABRIC_CA_HOME=fabric-fp-network/ca/middleCA
  • fabric-ca-server start -b admin:vsaCNbZGpOtR -u http://admin:adminpw@root.fp.com:7054 -p 7055 --cfg.affiliations.allowremove --cfg.identities.allowremove

    至此,ca-server已经启动起来
  1. 下来初始化caAdmin信息

    export FABRIC_CA_CLIENT_HOME=fabric-fp-network/fabric-ca-files/caAdmin

    fabric-ca-client enroll -d -u http://admin:vsaCNbZGpOtR@localhost:7055

  2. 添加org信息,首先查看其联盟结构默认是org1 org2,为了简化删除所有的org,只保留org1

    • fabric-ca-client affiliation list
    • fabric-ca-client affiliation remove --force org1
    • fabric-ca-client affiliation remove --force org2
    • fabric-ca-client affiliation add org1
  3. 下来进行orderer Register ,首先Register一个orderer信息

    我们可以修改fabric-fp-network/fabric-ca-files/caAdmin/fabric-ca-client-config.yaml中的id节点为下面信息

    id:

    name: orderer.fp.com

    type: orderer

    affiliation: org1

    maxenrollments: 0

    attributes:

    为了演示,我们所有的都一参数传递,后面也不在进行任何yaml文件修改。所以直接执行下面的即可

    fabric-ca-client register -d --id.secret orderer.fp.compw --id.name orderer.fp.com --id.type orderer --id.affiliation org1

    然后我们register admin信息

    fabric-ca-client register -d --id.secret Admin.fp.compw --id.name Admin@fp.com --id.type client --id.affiliation org1 --id.attrs admin=true:ecert

  4. 接下来我们需要获取orderer的msp信息

    fabric-ca-client getcacert -d -u http://localhost:7055 -M fabric-fp-network/fabric-ca-files/fp.com/msp --id.type client --id.affiliation org1

    完成之后我们,需要复制tls信息,进入到fabric-fp-network/fabric-ca-files/fp.com/msp下新建

    tlscacerts 、tlsintermediatecerts文件夹,将cacerts复制到tlscacerts,intermediatecerts复制到tlsintermediatecerts

  5. 下来开始enroll orderer的admin信息

    export FABRIC_CA_CLIENT_HOME=fabric-fp-network/fabric-ca-files/fp.com/admin

    fabric-ca-client enroll -d -u http://Admin@fp.com:Admin.fp.compw@localhost:7055 --id.affiliation org1

    完事之后我们需要复制admin信息

    • 新建文件夹:fabric-fp-network/fabric-ca-files/fp.com/msp/admincerts
    • 新建文件夹:fabric-fp-network/fabric-ca-files/fp.com/admin/msp/admincerts
    • 复制 fabric-fp-network/fabric-ca-files/fp.com/admin/msp下的signcerts文件夹下的证书上面新建的文件夹中
  6. enroll orderer的tls证书信息

    export FABRIC_CA_CLIENT_HOME=fabric-fp-network/fabric-ca-files/fp.com/orderer

    fabric-ca-client enroll -d --enrollment.profile tls -u http://orderer.fp.com:orderer.fp.compw@localhost:7055 -M fabric-fp-network/fabric-ca-files/fp.com/orderer/tls --csr.hosts orderer.fp.com --id.affiliation org1

    生成tls证书之后,复制证书信息

    • 复制 fabric-fp-network/fabric-ca-files/fp.com/orderer/tls/keystore/* 到fabric-fp-network/fabric-ca-files/fp.com/orderer/tls/server.key
    • 复制f abric-fp-network/fabric-ca-files/fp.com/orderer/tls/signcerts/* 到fabric-fp-network/fabric-ca-files/fp.com/orderer/tls/server.crt
    • 复制 fabric-fp-network/fabric-ca-files/ca/middleCA/ca-chain.pem 到fabric-fp-network/fabric-ca-files/fp.com/orderer/tls/ca.crt
  7. 下来enroll orderer信息

    fabric-ca-client enroll -d -u http://orderer.fp.com:orderer.fp.compw@localhost:7055 -M fabric-fp-network/fabric-ca-files/fp.com/orderer/msp --id.affiliation org1

    成功之后,我们需要复制tls信息

    • 新建fabric-fp-network/fabric-ca-files/fp.com/orderer/msp/tlscacerts
    • 新建fabric-fp-network/fabric-ca-files/fp.com/orderer/msp/tlsintermediatecerts
    • 复制 fabric-fp-network/fabric-ca-files/fp.com/orderer/msp/cacerts到fabric-fp-network/fabric-ca-files/fp.com/orderer/msp/tlscacerts
    • 复制 fabric-fp-network/fabric-ca-files/fp.com/orderer/msp/intermediatecerts到fabric-fp-network/fabric-ca-files/fp.com/orderer/msp/tlsintermediatecerts
  8. 下来我们以hyperledger/fabric-samples/first-network生成的crypto-config为例,将orderer信息与其对应起来:

  • fabric-ca-files/fp.com/admin 对应 crypto-config/ordererOrganizations/fp.com/users/Admin@fp.com
  • fabric-ca-files/fp.com/orderer 对应 crypto-config/ordererOrganizations/fp.com/orderers/orderer.fp.com
  • fabric-ca-files/fp.com/msp 对应 crypto-config/ordererOrganizations/fp.com/msp

    至此,orderer的所有信息生成完成。

peer的所有流程跟orderer一样,所以peer的流程在此不做演示了。

完整的逻辑 、docker文件等都已上传至github上,如果有不懂peer生成的可以去github查看

GitHub 地址:

hyperledger-fabric-ca生产示例

参考:

https://github.com/hyperledger/fabric-samples/tree/release-1.2/fabric-ca

ca-server的验证

fabric-ca的应用

hyperledger-fabirc1.2-ca-server的生产示例的更多相关文章

  1. Hyperledger fabric Client Node.js Hello World示例程序

    简介 Hyperledger fabric Client (HFC)提供了基于Node.js的应用接口来访问Hyperledger区块. 本文介绍了一个使用HFC访问IBM Bluemixr区块服务的 ...

  2. Hyperledger:Fabric CA 用户指南 [译]

    Fabric CA 用户指南 Fabric CA 是 Hyperledger Fabric 的官方配套认证设施. 原文链接:http://hyperledger-fabric.readthedocs. ...

  3. 【SQL】用Sql Server自动生产html格式的数据字典

    原文:[SQL]用Sql Server自动生产html格式的数据字典 本文软件环境:Sql Server 2008. 1.打开sql server管理器,给选定的表添加描述信息,给指定的字段添加描述信 ...

  4. OAuth 2.0 Server PHP实现示例

    需求实现三方OAuth2.0授权登录 使用OAuth服务OAuth 2.0 Server PHP 环境nginx mysqlphp 框架Yii 一 安装 项目目录下安装应用 composer.phar ...

  5. Tomcat server.xml配置示例

    本文由 ImportNew 几乎所有容器类型的应用都会包含一个名为 server.xml 的文件结构.基本上,其中的每个元数据或者配置都是容器完成初始化所需要的.正是由于这些内容都是可配置的,使得软件 ...

  6. Python002-操作MSSQL(Microsoft sql server)基础示例(二)

    前文http://www.cnblogs.com/fengpingfan/p/7675291.html,讲述了python操作mssql的步骤.环境创建.常用方法等,本文将实例演示python操作ms ...

  7. [svc] cisco router as ca server

    把cisco路由器配置成ca服务器 参考 clock set 10:00:00 Dec 23 2017 conf t crypto key generate rsa general-keys labe ...

  8. svn Server authz 配置示例(文件夹权限配置)

    [aliases] [groups] admin = jiangzhehao technology = chenlei,liulei,xunzheng,qiaomingjie sales = chen ...

  9. 使用自签CA,Server,client证书和双向认证

    服务端代码 package main import ( "crypto/tls" "crypto/x509" "google.golang.org/g ...

随机推荐

  1. Windows进程间的通信

    一.进程与进程通信   进程间通信(Interprocess Communication, IPC)是指不同的进程之间进行数据共享和数据交换. 二.进程间通信方式 1.  文件映射 注:文件映射是在多 ...

  2. 使用 jekyll + github pages 搭建个人博客

    1. 新建 github.io 项目 其实 github pages 有两个用途,大家可以在官方网页看到.其中一个是作为个人/组织的主页(每个账号只能有一个),另一个是作为 github 项目的项目主 ...

  3. Django商城项目笔记No.6用户部分-注册接口-短信验证码实现celery异步

    Django商城项目笔记No.4用户部分-注册接口-短信验证码实现celery异步 接上一篇,如何解决前后端请求跨域问题? 首先想一下,为什么图片验证码请求的也是后端的api.meiduo.site: ...

  4. 6.Solr4.10.3API使用(CURD)

    转载请出自出处:http://www.cnblogs.com/hd3013779515/ 1.在工程中引入solr-solrj-4.10.3.jar <dependency> <gr ...

  5. Redis系列七:redis持久化

    redis支持RDB和AOF两种持久化机制,持久化可以避免因进程退出而造成数据丢失 一.RDB持久化 RDB持久化把当前进程数据生成快照(.rdb)文件保存到硬盘的过程,有手动触发和自动触发 手动触发 ...

  6. Spring IOC 之 SmartInitializingSingleton

    使用 实现该接口后,当所有单例 bean 都初始化完成以后, 容器会回调该接口的方法 afterSingletonsInstantiated. 主要应用场合就是在所有单例 bean 创建完成之后,可以 ...

  7. windows下mysql和linux下mysql主从配置

    1. linux下mysql安装版本5.6   windows下mysql版本5.7  不要问我为什么版本不一致  就是想这么搞 2. linux为主服务器   windows为从服务器 3.找到li ...

  8. 魔法少女【动态规划问题】——NYOJ1204

    个人博客页:https://www.scriptboy.cn/202.html 题目描述: 前些时间虚渊玄的巨献小圆着实火了一把. 在黑长直(小炎)往上爬楼去对抗魔女之夜时,她遇到了一个问题想请你帮忙 ...

  9. python is、==区别;with;gil;python中tuple和list的区别;Python 中的迭代器、生成器、装饰器

    1. is 比较的是两个实例对象是不是完全相同,它们是不是同一个对象,占用的内存地址是否相同 == 比较的是两个对象的内容是否相等 2. with语句时用于对try except finally 的优 ...

  10. ssh推送.py程序到服务器端运行

    C:\Users\jiangshan>ssh jiangshan@192.168.1.191jiangshan@192.168.1.191's password:Last login: Sun ...