搭建基于hyperledger fabric的联盟社区(八) --Fabric证书解析

一.证书目录解析

通过cryptogen生成所有证书文件后,以peerOrgannizations的第一个组织树org1为例,每个目录和对应文件的功能如下:

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

tlsca:存放组织tls连接用的根证书和私钥文件。(TLS是传输层安全协议,其实就是SSL,现在叫TLS了)

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:第二个用户的信息,结构类似(省略)

二.证书内容解析

查看证书文件(实际上,数字证书就是经过CA认证过的公钥)的标准为X.509,编码格式为pem,以-----BEGIN开头,以-----END结尾。X.509 数字证书不但包括用户名和公共密钥,而且还包括有关该用户的其他信息。除了扩展名为PEM的还有以下这些:

CRT :应该是certificate的三个字母,还是证书的意思。打开看也是pem编码格式。

KEY: 用来存放一个公钥或私钥,并非X.509证书。打开看依然PEM格式。

证书的默认签名算法为ECDSA,Hash算法为SHA-256。Fabric中设计中考虑了三种类型证书:

登记证书(ECert):颁发给提供了注册凭证的用户或节点实体,长期有效。(主要就是通ECert对实体身份检验)

通信证书(TLSCert):TLS证书用来保障通信链路安全,控制对网络层的接入访问,可以对远端实体身份校验,防止窃听。

交易证书(TCert):颁发给用户,控制每个交易的权限,一般针对某个交易,短期有效。(此功能fabric还暂未启用)

在chaincode里可以通过shim API的GetCreator函数提取调用当前交易的客户端的身份证书,使用GO语言的pem包将证书解码,然后使用x.509包解析证书中的信息。

时间: 2024-10-07 05:25:21

搭建基于hyperledger fabric的联盟社区(八) --Fabric证书解析的相关文章

搭建基于hyperledger fabric的联盟社区(七) --升级chaincode

上个版本的chaincode有很多功能不完备,所以要部署新版本的chaincode.Fabric支持在保留现有状态的前提对chaincode进行升级. 一.新版chaincode 新版本的chaincode增加的功能如下: 1.增加了数据追溯功能,在社区用户发起transaction时,chaincode将自动在用户证书中提取用户信息,将其存储在帖子的字段里. 2.加入了敏感词监管功能,敏感词字典和敏感词过滤功能在外部提供,chaincode通过http api(post 请求)调用服务. 3.

HyperLeger Fabric SDK开发(八)——msp

HyperLeger Fabric SDK开发(八)--msp 一.msp简介 1.msp简介 msp支持在Fabric网络上创建和更新用户.MSP客户端支持以下操作:Enroll,Reenroll,Register,Revoke和GetSigningIdentity.官方文档:https://godoc.org/github.com/hyperledger/fabric-sdk-go/pkg/client/msp 2.msp使用流程 msp使用的基本流程如下:A.准备客户端上下文B.创建msp

linux学习笔记——搭建基于nginx的web服务器、多核配置、nginx配置参数

############ 认识nginx #############Nginx:(发音同 engine x)是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行.由俄罗斯的程序设计师Igor Sysoev所开发,最初供俄国大型的入口网站及搜寻引擎Rambler(俄文:Рамблер)使用.  其优点是轻量级(占有内存少),高并发(并发能力强),事实上nginx的并发能力确实在同类型的网页伺服器中表现较好.目前中国大陆使用ngi

用FreeBSD10搭建基于ZFS的iSCSI服务

概述 对于ZFS我是一直在强烈推荐的,因为实在太好用了.但是直到现在,它还是只能运行于Oracle的Solaris和FreeBSD两个系统上,为了将它分享给别的系统只能通过NAS或SAN的方式. NAS的方式很简单,我一直在用Samba实现,当然NFS也是可以的,SAN的话之前还没试过.使用上当然是SAN更好一些,而且现在网速也够快.虽然对于存储来说,NAS和SAN都是外部存储,但对于客户机来说,它知道NAS是网络设备,而SAN则会被视同本地设备,这是二者的主要区别.之所以会这样,是因为NAS走

RTEMS开发环境搭建——基于FreeBSD系统

RTEMS开发环境搭建——基于FreeBSD系统 2015年12月08日  星期二 本文是记录安装RTEMS-4.10.2开发环境的文章,且仅仅是记录,并未对其过程做过多原理方面的研究. 1.本文采用的FreeBSD 9.3版系统,系统自带的gcc-4.2.1编译器,并将由它完成环境搭建中各个程序的编译工作: 2.本文采用RTEMS-4.10.2版源码: 3.下面介绍开发环境的安装过程: (1)安装bash FreeBSD默认采用的是/bin/csh和/bin/sh两种shell,但在我测试的过

搭建基于MyEclipse的Hadoop开发环境

前面我们已经搭建了一个伪分布模式的Hadoop运行环境. 我们绝大多数都习惯在Eclipse或MyEclipse中做Java开发,本次随笔我就教大家如何搭建一个基于MyEclipse IDE的Hadoop开发环境. 闲话少说,走起! 第一步 安装MyEclipse的Hadoop插件 1 打开MyEclipse,查看是否已经安装过 window  ->  preferences 没有显示Hadoop Map/Reduce,所以说明是MyEclipse是没有安装过Eclipse的插件. 首先,确认你

Windows 7下 搭建 基于 ssh 的sftp 服务器

Windows  xp 下 搭建 基于  ssh 的sftp 服务器,服务器端可以用 freesshd,F-secure server等,filezilla server不可用,之前傻乎乎的用filezilla 来做服务器,找不到任何有关sftp的配置选项,推荐用freesshd,免费.简单,直观,客户端可以用一般的支持sftp的都可以,filezilla,f-secure client 等,我用freesshd和filezillazilla 搭建sftp 服务,我在内网搭建的,如果在外网发布,

搭建基于MinGW平台的《OpenGL蓝皮书(OpenGL SuperBibe 5th)》示例代码编译环境

副标题:搭建基于MinGW平台的<OpenGL超级宝典>(OpenGL蓝皮书第5版)GLTools 编译环境.示例代码:Triangle.cpp @ SB5.zip 以下内容以及方法均参考自老外在stackoverflow上的回答,强烈建议看看原文,因为他告诉你解决问题的思路而不只是给你结果opengl-superbible-5th-edition-set-up-problems 1. 还未安装MinGW的,去官网下一个,我这里用的是第三方的安装包 TDM-GCC  32位下载地址 2. 到

.net项目架构改造之搭建基于java环境配置一览【上】

最近公司做了一个项目,需要嵌套在千牛的客户端上,项目代码必须上阿里的聚石塔,全程采用基于docker的自动化部署,我们的项目是基于.net架构.很遗憾 的是基于windows的docker上部署在访问淘宝自身的api接口,总是会时不时的各种超时,阿里小二也整个一个星期没解决,给出的理由很简单,基于windows的docker 的服务也才引入不久,还有稳定性问题. 在选择docker镜像时把自己技术的tomcat顶的高高在上,卧槽,双重1w点暴击,预计.net架构用在这上面后面会有各种坑... 改