搭建基於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包解析證書中的信息。
相關文章
相關標籤/搜索