搭建基於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包解析證書中的信息。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM