hyperledger-fabirc1.2-ca-server的生产示例
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 |
- 新建fabric-fp-network文件夹下来咱们的东西都在该文件夹下进行
- 编写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已经启动起来
下来初始化caAdmin信息
export FABRIC_CA_CLIENT_HOME=fabric-fp-network/fabric-ca-files/caAdmin
fabric-ca-client enroll -d -u http://admin:vsaCNbZGpOtR@localhost:7055
添加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
下来进行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
接下来我们需要获取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下来开始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文件夹下的证书上面新建的文件夹中
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
下来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
下来我们以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的生产示例的更多相关文章
- Hyperledger fabric Client Node.js Hello World示例程序
简介 Hyperledger fabric Client (HFC)提供了基于Node.js的应用接口来访问Hyperledger区块. 本文介绍了一个使用HFC访问IBM Bluemixr区块服务的 ...
- Hyperledger:Fabric CA 用户指南 [译]
Fabric CA 用户指南 Fabric CA 是 Hyperledger Fabric 的官方配套认证设施. 原文链接:http://hyperledger-fabric.readthedocs. ...
- 【SQL】用Sql Server自动生产html格式的数据字典
原文:[SQL]用Sql Server自动生产html格式的数据字典 本文软件环境:Sql Server 2008. 1.打开sql server管理器,给选定的表添加描述信息,给指定的字段添加描述信 ...
- OAuth 2.0 Server PHP实现示例
需求实现三方OAuth2.0授权登录 使用OAuth服务OAuth 2.0 Server PHP 环境nginx mysqlphp 框架Yii 一 安装 项目目录下安装应用 composer.phar ...
- Tomcat server.xml配置示例
本文由 ImportNew 几乎所有容器类型的应用都会包含一个名为 server.xml 的文件结构.基本上,其中的每个元数据或者配置都是容器完成初始化所需要的.正是由于这些内容都是可配置的,使得软件 ...
- Python002-操作MSSQL(Microsoft sql server)基础示例(二)
前文http://www.cnblogs.com/fengpingfan/p/7675291.html,讲述了python操作mssql的步骤.环境创建.常用方法等,本文将实例演示python操作ms ...
- [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 ...
- svn Server authz 配置示例(文件夹权限配置)
[aliases] [groups] admin = jiangzhehao technology = chenlei,liulei,xunzheng,qiaomingjie sales = chen ...
- 使用自签CA,Server,client证书和双向认证
服务端代码 package main import ( "crypto/tls" "crypto/x509" "google.golang.org/g ...
随机推荐
- Linux下搭建lnmp环境
前提:假设阅读本文的读者已经拥有基本的linux使用技巧,能够解决系统安装问题,以及软件安装的技巧. 注意: 本文所涉及的主要安装包(需要下载使用的)安装包,在本文最后会给出百度云盘链接,需要使用的, ...
- FZU Monthly-201901 tutorial
FZU Monthly-201901 tutorial 题目(难度递增) easy easy-medium medium medium-hard hard 思维难度 AHG F B CE D 编码难度 ...
- 一次gcc编译失败分析
1. 场景: 在使用gcc编译时,编译器报错:xxx:'xxx'未定义的引用 2. 排查过程: 首先,我很自然的想到是不是自己使用了未定义的函数或者将函数名称写错了,在检查了一边过后,我发现自己使 ...
- [部署]VM11下CentOS7mini安装及配置
最近使用了CentOS发现比Ubuntu更简洁,有些爱上CentOS了 1. 准备一版CentOS安装镜像文件 官网下载地址:http://www.centos.org/download/ 官方有三个 ...
- Nginx反向代理理解误区之proxy_cookie_domain
基本内容 Nginx做反向代理的时候,我们一般习惯添加proxy_cookie_domain配置,来做cookie的域名转换,比如 ... location /api { proxy_pass htt ...
- 关于$namespace$和重载运算符
$namespace$ 还记得列队和天天爱跑步吗?记得当时写部分分写的非常艰难,一大原因就是部分分之间有很多重名的数组,而且大小还不一样大,经常写着写着就串了,而且$maxn$有一次提交时用错了直接全 ...
- Android MaterialDesign之水波点击效果的几种实现方法
什么是水波点击的效果? 下面是几种不同的实现方法的效果图以及实现方法 Video_2016-08-31_003846 如何实现? 方法一 使用官方提供的RippleDrawable类 优点:使用方 ...
- windows 下配置 Nginx 常见问题
因为最近的项目需要用到负载均衡,不用考虑,当然用大名鼎鼎的Nginx啦.至于Nginx的介绍,这里就不多说了,直接进入主题如何在Windows下配置. 我的系统是win7旗舰版的,到官网下载最新版本 ...
- Python高级网络编程系列之基础篇
一.Socket简介 1.不同电脑上的进程如何通信? 进程间通信的首要问题是如何找到目标进程,也就是操作系统是如何唯一标识一个进程的! 在一台电脑上是只通过进程号PID,但在网络中是行不通的,因为每台 ...
- webservice 客户端调用
/** * 通过webserevice下发工单 * @param url * @param method * @param requestMap * @return * @throws Service ...