文章目錄
- 1. 簡介
- 2. 具體配置資訊
- (1)OrdererOrgs
- (2)PeerOrgs
- 3. 使用
參考:組態檔
很感謝大佬的文章,茅塞頓開,下面我又看了點書寫的.
希望對大家有一點點的幫助,不對的地方希望指正,
1. 簡介
用于生成相關組織的私鑰和證書
fabric網路中有兩種型別的公私鑰和證書
- 給節點之間通訊安全而準備的TLS證書
- 用戶登錄和權限控制的用戶證書
2. 具體配置資訊
主要分為兩大塊:OrdererOrgs、PeerOrgs
# 排序節點組織的定于
OrdererOrgs:
- Name: Orderer
#組織的域名
Domain: example.com
Specs:
- Hostname: orderer
CommonName: orderer.test.com
# - Hostname: orderer2
# - Hostname: orderer3
# - Hostname: orderer4
- Hostname: orderer5
CommonName: orderer5.test.com
# peer節點的組織的定義
PeerOrgs:
- Name: Org1
Domain: org1.example.com
## 如果設定了 EnableNodeOUs ,就在msp下生成config.yaml檔案
EnableNodeOUs: true
# Specs:
# - Hostname: foo # implicitly "foo.org1.example.com"
# CommonName: foo27.org5.example.com # overrides Hostname-based FQDN set above
# - Hostname: bar
# - Hostname: baz
Template:
Count: 2
Users:
Count: 1
- Name: Org2
Domain: org2.example.com
EnableNodeOUs: true
Template:
Count: 2
Users:
Count: 1
(1)OrdererOrgs
排序節點的組織的定義,在定義排序節點時,會同時指定節點名稱,節點域名以及指定一個規范(Specs),
(2)PeerOrgs
peer節點的組織的定義,在定義peer節點時,與排序節點一樣類似的配置,
peer節點的配置由兩種方案,一種是通過規范串列指定,一種是通過模板創建的方式實作,
- Template
# 組織名稱
- Name: Org1
# 域名
Domain: org1.example.com
# 允許通過該模板定義創建 0->count-1 個組織節點
Template:
Count: 2
# 除了admin以外的創建用戶,其中count定義代表創建的用戶數量
Users:
Count: 1
- Specs
- Name: Org1
Domain: org1.example.com
Specs:
# 指定了節點目錄和檔案名,生成的就是foo27.org5.example.com
- Hostname: foo
CommonName: foo27.org5.example.com
# 不指定默認就是“{{.HostName}}.{{.Domain}}”
# 比如:bar.org1.example.com
- Hostname: bar
- Hostname: baz
默認選擇第一種就行,而且這兩種方案不沖突,可以同時定義,但是要注意名稱不能沖突,
3. 使用
Fabric使用了cryptogen工具用來呼叫上面的組態檔生成私鑰和證書
cryptogen generate --config=./crypto-config.yaml
執行完以后,會在當前目錄生成一個 crypto-config 目錄,當然也可以在命令中添加 --output 選項來指定輸出的目錄,在這個目錄下就會根據 Orderer 和Peer 各自生成兩個檔案夾:
- ordererOrganizations
- peerOrganizations
它們分別代表著orderer和peer的組織及對應目錄下的證書檔案,
每個組織下都有ca,tlsca,msp,orderers(或者peers),users等5個檔案,下面通過tree命令的輸出結果,分別解釋一下各個目錄的作用,
- 目錄結構
crypto-config
├── ordererOrganizations ## 組織配置
│ └── example.com ## 組織根域名
│ ├── ca ## 存放組織根證書以及私鑰
│ │ ├── 4c08c6dc603f08dac6dd490491ac7de077a954bc28150b8ad5b87b78cb8ed5c0_sk ## 私鑰
│ │ └── ca.example.com-cert.pem
│ ├── msp ## 存放該組織身份資訊
│ │ ├── admincerts ## 組織管理員
│ │ │ └── Admin@example.com-cert.pem ## 管理員身份驗證證書,被根證書簽名
│ │ ├── cacerts ## 組織的根證書
│ │ │ └── ca.example.com-cert.pem ## 組織的根證書,與ca中的一致
│ ├── config.yaml ## 組態檔中加了 EnableNodeOUs 引數生成的config.yaml檔案,記錄 OrganizationalUnitIdentitifiers 資訊,包括根證書位置和ID資訊
│ │ └── tlscacerts ## 用于TLS的CA證書
│ │ └── tlsca.example.com-cert.pem ## 用于TLS的CA證書,自簽名
│ ├── orderers ## 存放所有 Orderer 的身份資訊
│ │ └── orderer.example.com
│ │ ├── msp
│ │ │ ├── admincerts ## 組織管理員的身份驗證證書,與 msp.admincerts 保持一致
│ │ │ │ └── Admin@example.com-cert.pem ## orderer被給予這些證書來確認交易簽名是否為管理員簽名
│ │ │ ├── cacerts ## 存放組織根證書,與CA目錄里一致
│ │ │ │ └── ca.example.com-cert.pem
│ │ │ ├── keystore ## 本節點的身份私鑰,用來簽名
│ │ │ │ └── 34fe6b5e8cd256a6fc23bc6ff70819f4a3cd2df1b228599e826efed92617a61f_sk
│ │ │ ├── signcerts ## 驗證本節點簽名的證書,被根證書簽名
│ │ │ │ └── orderer.example.com-cert.pem
│ │ │ └── tlscacerts ## TLS連接用的身份證書,與 msp.tlscacerts 保持一致
│ │ │ └── tlsca.example.com-cert.pem
│ │ └── tls ## TLS的相關資訊
│ │ ├── ca.crt ## 組織的根證書
│ │ ├── server.crt ## 驗證本節點簽名的證書,被根證書簽名
│ │ └── server.key ## 本節點的身份私鑰,用來簽名
│ ├── tlsca ## 存放tls相關的證書和私鑰
│ │ ├── e20de2f55b528a5150a897f5647e09fe20bea62b7b9dcab5e5abc59bf66a5b10_sk
│ │ └── tlsca.example.com-cert.pem
│ └── users ## 存放屬于該組織的用戶的物體
│ └── Admin@example.com ## 管理員用戶的資訊,其中包括msp證書和tls證書兩類
│ ├── msp
│ │ ├── admincerts ## 組織管理員的身份驗證證書,與 msp.admincerts 保持一致
│ │ │ └── Admin@example.com-cert.pem
│ │ ├── cacerts ## 存放組織根證書,與CA目錄里一致
│ │ │ └── ca.example.com-cert.pem
│ │ ├── keystore ## 本用戶的身份私鑰,用來簽名
│ │ │ └── 1718d4afba538037e0adc508de9c13274753b800c09badf1fa64be46d828eb94_sk
│ │ ├── signcerts ## 驗證本用戶的身份驗證證書,被根證書簽名,要被某個Orderer認可,則必須放到該 Orderer 的msp/admincerts目錄下,因此上面ordere的 msp/admincerts目錄下的證書應該要是從這里復制一份過去
│ │ │ └── Admin@example.com-cert.pem
│ │ └── tlscacerts ## TLS連接用的身份證書,與 msp.tlscacerts 保持一致
│ │ └── tlsca.example.com-cert.pem
│ └── tls ## TLS的相關資訊
│ ├── ca.crt
│ ├── client.crt ## 管理員身份驗證證書,被根證書簽名
│ └── client.key ## 管理員的身份私鑰,用來簽名
└── peerOrganizations ## peer組織
└── org1.example.com ## 第一個組織的所有身份證書
├── ca ## 存放私鑰與組織根證書
│ ├── bad4233ca8315ab62e24bcc0c4f02f0fce954be488b461c3037278d0facad870_sk
│ └── ca.org1.example.com-cert.pem
├── msp ## msp資訊與order組織類似
│ ├── admincerts
│ │ └── Admin@org1.example.com-cert.pem
│ ├── cacerts
│ │ └── ca.org1.example.com-cert.pem
│ ├── config.yaml
│ └── tlscacerts
│ └── tlsca.org1.example.com-cert.pem
├── peers
│ └── peer0.org1.example.com
│ ├── msp
│ │ ├── admincerts
│ │ │ └── Admin@org1.example.com-cert.pem
│ │ ├── cacerts
│ │ │ └── ca.org1.example.com-cert.pem
│ │ ├── config.yaml
│ │ ├── keystore
│ │ │ └── e4441bca94a8c89345aa166858657e691c28eb236938018cf4f13d1d9661b66c_sk
│ │ ├── signcerts
│ │ │ └── peer0.org1.example.com-cert.pem
│ │ └── tlscacerts
│ │ └── tlsca.org1.example.com-cert.pem
│ └── tls
│ ├── ca.crt
│ ├── server.crt
│ └── server.key
├── tlsca
│ ├── c399a9854b0100e3c6eaadd8a8760f94af180c25576b2c0668896968a2e9b9b4_sk
│ └── tlsca.org1.example.com-cert.pem
└── users
├── Admin@org1.example.com
│ ├── msp
│ │ ├── admincerts
│ │ │ └── Admin@org1.example.com-cert.pem
│ │ ├── cacerts
│ │ │ └── ca.org1.example.com-cert.pem
│ │ ├── keystore
│ │ │ └── d1ccedf3f161d0309930ae514b12d0c528ef2153112e9503fed811fba302ef31_sk
│ │ ├── signcerts
│ │ │ └── Admin@org1.example.com-cert.pem
│ │ └── tlscacerts
│ │ └── tlsca.org1.example.com-cert.pem
│ └── tls
│ ├── ca.crt
│ ├── client.crt
│ └── client.key
└── User1@org1.example.com
├── msp
│ ├── admincerts
│ │ └── User1@org1.example.com-cert.pem
│ ├── cacerts
│ │ └── ca.org1.example.com-cert.pem
│ ├── keystore
│ │ └── 3cbf4656b8f98907827b0126375a381433b5d93cfe6a2c2e9be0265fbc4b6003_sk
│ ├── signcerts
│ │ └── User1@org1.example.com-cert.pem
│ └── tlscacerts
│ └── tlsca.org1.example.com-cert.pem
└── tls
├── ca.crt
├── client.crt
└── client.key
- 在一個組織內部(orderer的example.com,peer的org1.example.com,或peer的org2.example.com),所有的admincerts是一樣的,admin的私鑰在Users的Admin檔案夾下
- 在一個組織內部,所有的cacerts是一樣的,ca的私鑰在ca檔案夾下
- 在一個組織內部,所有的tlscacerts是一樣的,且和tls檔案夾下的ca.crt檔案一樣,tlsca的私鑰在tlsca檔案夾下
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/401715.html
標籤:區塊鏈
下一篇:Cassandra - A Decentralized Structured Storage System 論文總結
