一.证书目录解析

 
通过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包解析证书中的信息。

Fabric证书解析的更多相关文章

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

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

  2. Fabric go sdk初始化所需证书解析

    fabric sdk go 提供的官方文档少之又少,要想入门,主要就靠研究官方的e2e系列示例,这真的是一件挺无奈的事情.没法子,只能硬着头皮上了.研究发现,e2e这个例子是通过cryptogen生成 ...

  3. Hyperledger Fabric Chaincode解析

    首先看下Blockchain结构,除了header指向下一个block的hash value外,block是由一组transaction构成, Transactions --> Blocks - ...

  4. openssl - 数字证书的编程解析

    原文链接: http://www.cangfengzhe.com/wangluoanquan/37.html 这篇文章主要介绍PKI公钥体系中非常核心元素——数字证书的编程解析.在SSL,SET等安全 ...

  5. X.509证书的编码及解析:程序解析以及winhex模板解析

    一.证书的整体结构:证书内容.签名算法.签名结果. 用ASN.1语法描述如下: Certificate::=SEQUENCE{ tbsCertificate TBSCertificate, signa ...

  6. Hyperledger Fabric源码解析

    Hyperledger Fabric开源于2015年12月,截至2018年2月初有185个公司/组织成员加入.最初由IBM和DAH的工程师贡献,现在约有70名的代码贡献者,4000+代码提交,代码行数 ...

  7. Hyperledger Fabric国密改造

    Fabric国密改造是个什么概念?我们来思考以下4个问题: 为什么偏偏是密码算法?(WHY?) 什么是国密算法?(WHAT?) 改造切入点什么?(WHERE?) 如何实现国密支持?(HOW?) 1.为 ...

  8. 从sslyze看TLS证书的点点滴滴

    纵观眼下,https已经深入大街小巷,成为网络生活中不可或缺的一部分了.提到了https,我们又不得不想到TLS(SSL),而提到了TLS,我们又不得不提到一个让人捉摸不透的东西:TLS证书. 关于证 ...

  9. android中使用https是否对服务证书合法性校验的新的体会

    package com.cetcs.logreport.utils; import android.content.Context; import org.apache.http.conn.ssl.S ...

随机推荐

  1. 谭浩强第四版第九章课后习题12>>>建立一个链表,每个节点包括:学号、姓名、性别、年龄。输入一个年龄,若链表 中的结点所包含的年龄等于此年龄,则删除此结点。

    #include<stdio.h> #include<stdlib.h> #define N sizeof(link) typedef struct lin { struct ...

  2. C++ 求阶乘

    #include<iostream> using namespace std; ; //输入阶乘数 int main() { long long factorial[size]; fact ...

  3. Go语言使用百度翻译api

    Go语言使用百度翻译api 之前做过一个使用百度翻译api的工具,这个工具用于用户的自动翻译功能,是使用C#调用百度翻译api接口,既然在学习Go语言,那必然也是要使用Go来玩耍一番.这里我是这么安排 ...

  4. struts2学习笔记一

    一.框架概述 1.框架的意义与作用: 所谓框架,就是把一些繁琐的重复性代码封装起来,使程序员在编码中把更多的经历放到业务需求的分析和理解上面. 特点:封装了很多细节,程序员在使用的时候会非常简单. 2 ...

  5. redhat6.4 安装Oracle11gR2 遇到的问题

    http://blog.sina.com.cn/s/blog_53a5865c0102e2u6.html   1.使用的时候出现一个错误: /lib/ld-linux.so.2: bad ELF in ...

  6. C#属性默认值设置

    关于在MVC中view中设置默认值,可以象如下设置: 1.关于VIEWMODEL的部分 如果是C#  6.0,网上资料查到说可以 如果语法不支持,只能改回.net 2.0的写法. public cla ...

  7. XML与Object的范型转换

    前段时间做object转换xml想了很多,所有打算整理下 做成以下的通用方法. public static bool ObjectToXml<T>(string filePath, T t ...

  8. Java 图像处理框架-Marvin

    网上看到,摘录过来的,暂时还没涉足这方面的东西 Marvin 1.4.5 的插件接口支持处理多个图像作为输入,新的插件可通过多个图片来确认背景,新的插件可使用多个图片来合并相同场景. Marvin 是 ...

  9. Windows自带的磁盘填充命令

    一张不用了的SD卡要给别人,之前一直是手机使用的,担心有一些资料被恢复,想要将它内容清空.以前就知道数字公司有一个磁盘填充的工具,后来网上搜一搜发现Windows有一个自带的命令用于磁盘填充. 首先进 ...

  10. ardupilot_gazebo仿真(四)

    ardupilot_gazebo仿真(四) 标签(空格分隔): 未分类 Multi-MAV simulation 参考官网给出的multi-vehicle-simulation的方法 在每次打开sim ...