二维码

10.4 cryptogen生成组织身份配置 - 数据结构 - 机器学习

1274 人阅读 | 时间:2021年01月15日 01:18
10.4 cryptogen生成组织身份配置 - 数据结构 - 机器学习 #daohang ul li t,.reed .riqi,a.shangg,a.xiatt,a.shangg:hover,a.xiatt:hover,a.shang,a.xiat,a.shang:hover,a.xiat:hover,.reed-pinglun-anniu,span.now-page,#daohangs-around,#caidan-tubiao,#daohangs,#daohangs li,#btnPost{background-color:#D10B04;} .dinglanyou1 h3{border-bottom:3px solid #D10B04;} #dibuer{border-top:2px solid #D10B04;}.cebianlan .rongqi h3{border-bottom:1px solid #D10B04;} #edtSearch{border:1px solid #D10B04;} #daohang .zuo ul li{border-right:1px solid #;} #daohang ul li t a{border-top:1px solid #;border-right:1px solid #D10B04;} #daohang ul li t a:hover{border-right:1px solid #;} #daohang .you ul li a:hover,#daohang .zuo ul li a:hover,.reed-pinglun-anniu:hover{background-color:#;} a:hover,.reed h6 a:hover,#dibuer a:hover,.reed .riqiding,.cebianlan .rongqi li a:hover,#pinglun-liebiao ul.fubens li.depth-1 dl dd span.shu a,#pinglun-liebiao ul.fubens li.depth-1 dl dd span.huifuliuyan a:hover,.reed-biaoti h6 span{color:#D10B04;} .reed .kan a{color:#0A0AF5;}.reed .kan a:hover{color:#D10101;} @media screen and (max-width:1492px){a.shang,a.xiat{background:none;} a.xiat:hover,a.shang:hover{background-color:#f9f9f9;background-image:none;text-decoration:none;}} var _hmt = _hmt || [];(function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?b19db5ba3b437a9e8698d2bc8fc64334"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s);})(); var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?b19db5ba3b437a9e8698d2bc8fc64334"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?2d748c9763cfc72fb7d1ccab29f0770d"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?f6d451f3f1be23f3abf240c64c469c1b"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })();

当前位置:首页 » 区块链精品文章 » 正文

(function() { var s = "_" + Math.random().toString(36).slice(2); document.write('
'); (window.slotbydup = window.slotbydup || []).push({ id: "u3646201", container: s }); })();
(function() { var s = "_" + Math.random().toString(36).slice(2); document.write('
'); (window.slotbydup = window.slotbydup || []).push({ id: "u3646162", container: s }); })();

10.4 cryptogen生成组织身份配置

1226 人参与  2018年09月29日 15:17  分类 : 区块链精品文章  评论

在Fabric网络中,需要通过证书和密钥来管理和鉴别成员身份,经常需要进行证书生成和配置操作。通常这些操作可以使用PKI服务或者OpenSSL工具来手动实现单个证书的签发。

为了提高对负责组织结构和批量证书进行管理的效率,基于Go语言的crypto库,Fabric提供了cryptogen(Crypto Generator)工具。

cryptogen可以快速地根据配置自动批量生成所需要的密钥和证书文件,或者查看配置模板信息,主要实现代码在common/tools/cryptogen包下。

10.4.1 配置文件

cryptogen工具支持从配置文件(通过-config参数指定,通常命名为crypto-config.yaml)

中读入YAML格式的配置模板信息。

一般情况下,配置文件中会指定网络的拓扑结构,可以指定两类组织的信息:

·OrdererOrgs:构成Orderer集群的节点所属组织;

·PeerOrgs:构成Peer集群的节点所属组织。

每个组织拥有:

·名称(Name):组织的名称;

·组织域(Domain):组织的命名域;

·CA:组织的CA地址,包括Hostname域;

·若干节点(Node):一个节点包括Hostname、CommonName、SANS等域,可以用Specs字段指定一组节点,或者用Template字段指定自动生成节点的个数;

·用户(User)模板:自动生成除admin外的用户个数。

每个主机的配置一般可以通过Specs来指定或通过Template来自动顺序生成,默认通用名为主机名.组织域。例如 域org1.example.com中Peer节点的名称可能为peer0.org1.example.com、 peer1.org1.example.com等。

crypto-config.yaml配置文件的示例如下:


OrdererOrgs:
   - Name: Orderer
       Domain: example.com
       Specs:
           - Hostname: orderer
             CommonName: orderer.example.com
             SANS: # 除了主机名、通用名外的主题别名
                  - "orderer.{{.Domain}}"
                  - "orderer_service.{{.Domain}}"
PeerOrgs:
   - Name: Org1
       Domain: org1.example.com
       CA:
           Hostname: ca # ca.org1.example.com
       Template:
           Count: 2
       Users:
           Count: 1
   - Name: Org2
       Domain: org2.example.com
       Template:
           Count: 2
       Users:
           Count: 1


上面的示例配置中,Orderer组织通过Specs字段指定了一个主机order.example.com;而两个Peer组织则采用Template来自动生成了Count个数的主机。

同样,Users字段下的Count字段值会让cryptogen工具以自动顺序生成指定个数的普通用户(除默认的Admin用户外)。

10.4.2 子命令和参数

子命令主要有两个:

·generate[flags]:生成密钥和证书文件;

·showtemplate:查看配置模板的信息。

其中,generate子命令支持如下参数:

·--output:指定存放生成密钥和证书文件的路径,默认为当前目录下的crypto-config目录;

·--config:指定所采用的配置模板文件的路径。

10.4.3 生成密钥和证书文件

根据指定的配置文件来生成相应的密钥和证书文件:


$ cryptogen generate \
   --config $GOPATH/src/github.com/hyperledger/fabric/examples/e2e_cli/crypto-
       config.yaml \
   --output crypto-config


查看当前目录下的crypto-config目录,生成ordererOrganizations和peerOrganizations两棵组织树。每个组织树下都包括ca、msp、orderers(或peers)、users四个子目录。

以peerOrganizations组织树为例,每个目录和文件对应的功能讲解如下。

1.org1

第一个组织的相关材料,每个组织会生成单独的根证书。

·ca:存放组织的根证书和对应的私钥文件,默认采用EC算法,证书为自签名。组织内的实体将基于该根证书作为证书根。

·msp:存放代表该组织的身份信息。

·admincerts:组织管理员的身份验证证书,被根证书签名。

·cacerts:组织的根证书,同ca目录下文件。

·tlscacerts:用于TLS的CA证书,自签名。

·peers:存放属于该组织的所有Peer节点。

·peer0:第一个peer的信息,包括其msp证书和tls证书两类。

·msp:

·admincerts:组织管理员的身份验证证书。Peer将基于这些证书来认证交易签署者是否为管理员身份。

·cacerts:存放组织的根证书。

·keystore:本节点的身份私钥,用来签名。

·signcerts:验证本节点签名的证书,被组织根证书签名。

·tlscacerts:TLS连接用的身份证书,即组织TLS证书。

·tls:存放tls相关的证书和私钥

·ca.crt:组织的根证书。

·server.crt:验证本节点签名的证书,被组织根证书签名。

·server.key:本节点的身份私钥,用来签名。

·peer1:第二个peer的信息,结构类似。(此处省略。)

·users:存放属于该组织的用户的实体。

·Admin:管理员用户的信息,包括其msp证书和tls证书两类。

·msp:

·admincerts:组织根证书作为管理者身份验证证书。

·cacerts:存放组织的根证书。

·keystore:本用户的身份私钥,用来签名。

·signcerts:管理员用户的身份验证证书,被组织根证书签名。要被某个Peer认可,则必须放到该Peer的msp/admincerts下。

·tlscacerts:TLS连接用的身份证书,即组织TLS证书。

·tls:存放tls相关的证书和私钥。

·ca.crt:组织的根证书。

·server.crt:管理员的用户身份验证证书,被组织根证书签名。

·server.key:管理员用户的身份私钥,用来签名。

·User1:第一个用户的信息,包括msp证书和tls证书两类。

·msp:

·admincerts:组织根证书作为管理者身份验证证书。

·cacerts:存放组织的根证书。

·keystore:本用户的身份私钥,用来签名。

·signcerts:验证本用户签名的身份证书,被组织根证书签名。

·tlscacerts:TLS连接用的身份证书,即组织TLS证书。

·tls:存放tls相关的证书和私钥。

·ca.crt:组织的根证书。

·server.crt:验证用户签名的身份证书,被组织根证书签名。

·server.key:用户的身份私钥,用来签名。

·User2:第二个用户的信息,结构类似。(此处省略。)

2.org2

第二个组织的信息,结构类似。

cryptogen按照配置文件中指定的结构生成了对应的组织和密钥、证书文件。

其中最关键的是各个资源下的msp目录内容,存储了生成的代表MSP身份的各种证书文件,一般包括:

·admincerts:管理员的身份证书文件;

·cacerts:信任的根证书文件;

·keystore:节点的签名私钥文件;

·signcerts:节点的签名身份证书文件;

·tlscacerts:TLS连接用的证书;

·intermediatecerts(可选):信任的中间证书;

·crls(可选):证书撤销列表;

·config.yaml(可选):记录OrganizationalUnitIdentifiers信息,包括根证书位置和ID信息。

这些身份文件随后可以分发到对应的Orderer节点和Peer节点上,并放到对应的MSP路径下,用于签名使用。

10.4.4 查看配置模板信息

通过showtemplate命令可以查看cryptogen内嵌默认的配置模板信息。

例如,通过如下命令查看默认配置,包括三个组织,一个Orderer组织以及两个Peer组织:Org1、Org2:


$ cryptogen showtemplate

OrdererOrgs:
   - Name: Orderer
       Domain: example.com
       Specs:
           - Hostname: orderer
PeerOrgs:
   - Name: Org1
       Domain: org1.example.com
       Template:
           Count: 1
       Users:
           Count: 1
   - Name: Org2
       Domain: org2.example.com
       Template:
           Count: 1
       Users:
           Count: 1



来源:我是码农,转载请保留出处和链接!

本文链接:http://www.54manong.com/?id=919

(function() { var s = "_" + Math.random().toString(36).slice(2); document.write('
'); (window.slotbydup = window.slotbydup || []).push({ id: "u3646208", container: s }); })();
(function() { var s = "_" + Math.random().toString(36).slice(2); document.write('
'); (window.slotbydup = window.slotbydup || []).push({ id: "u3646147", container: s }); })();
window._bd_share_config={"common":{"bdSnsKey":{},"bdText":"","bdMini":"2","bdPic":"","bdStyle":"0","bdSize":"16"},"share":{},"image":{"viewList":["qzone","tsina","tqq","renren","weixin"],"viewText":"分享到:","viewSize":"16"},"selectShare":{"bdContainerClass":null,"bdSelectMiniList":["qzone","tsina","tqq","renren","weixin"]}};with(document)0[(getElementsByTagName('head')[0]||body).appendChild(createElement('script')).src='http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion='+~(-new Date()/36e5)];
区块链是什么  

微信号:qq444848023    QQ号:444848023

加入【我是码农】QQ群:864689844(加群验证:我是码农)

<< 上一篇 下一篇 >>
(function() { var s = "_" + Math.random().toString(36).slice(2); document.write('
'); (window.slotbydup = window.slotbydup || []).push({ id: "u3646186", container: s }); })();
(function() { var s = "_" + Math.random().toString(36).slice(2); document.write('
'); (window.slotbydup = window.slotbydup || []).push({ id: "u3646175", container: s }); })();
搜索

网站分类

标签列表

最近发表

    (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https'){ bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else{ bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();

全站首页 | 数据结构 | 区块链| 大数据 | 机器学习 | 物联网和云计算 | 面试笔试

var cnzz_protocol = (("https:" == document.location.protocol) ? "https://" : "http://");document.write(unescape("%3Cspan id='cnzz_stat_icon_1276413723'%3E%3C/span%3E%3Cscript src='" + cnzz_protocol + "s23.cnzz.com/z_stat.php%3Fid%3D1276413723%26show%3Dpic1' type='text/javascript'%3E%3C/script%3E"));本站资源大部分来自互联网,版权归原作者所有!

jQuery(document).ready(function($){ /* prepend menu icon */ $('#daohangs-around').prepend('
'); /* toggle nav */ $("#caidan-tubiao").on("click", function(){ $("#daohangs").slideToggle(); $(this).toggleClass("active"); }); });

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

©著作权归作者所有:来自ZhiKuGroup博客作者没文化的原创作品,如需转载,请注明出处,否则将追究法律责任 来源:ZhiKuGroup博客,欢迎分享。

评论专区
  • 昵 称必填
  • 邮 箱选填
  • 网 址选填
◎已有 0 人评论
搜索
作者介绍
30天热门
×
×
关闭广告
关闭广告
本站会员尊享VIP特权,现在就加入我们吧!登录注册×
»
会员登录
新用户注册
×
会员注册
已有账号登录
×