Fabric证书结构

工具默认生成结构

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
├── ordererOrganizations [排序组织]
│ └── order.com
│ ├── ca
│ │ ├── 51d4e0177748d40336debef3e543521f442f82b548b109cd90cbe151ef669212_sk
│ │ └── ca.order.com-cert.pem
│ ├── msp
│ │ ├── admincerts
│ │ │ └── Admin@order.com-cert.pem
│ │ ├── cacerts
│ │ │ └── ca.order.com-cert.pem
│ │ └── tlscacerts
│ │ └── tlsca.order.com-cert.pem
│ ├── orderers
│ │ └── orderer.order.com
│ │ ├── msp
│ │ │ ├── admincerts
│ │ │ │ └── Admin@order.com-cert.pem
│ │ │ ├── cacerts
│ │ │ │ └── ca.order.com-cert.pem
│ │ │ ├── keystore
│ │ │ │ └── 180a6d9f4754eaaac2cd648668623be47e35e5c0018b927b5f82efef58a650d1_sk
│ │ │ ├── signcerts
│ │ │ │ └── orderer.order.com-cert.pem
│ │ │ └── tlscacerts
│ │ │ └── tlsca.order.com-cert.pem
│ │ └── tls
│ │ ├── ca.crt
│ │ ├── server.crt
│ │ └── server.key
│ ├── tlsca
│ │ ├── d98956ded7c42a4e35b668adb498ee18b93dd4d1f99e4d39a0dc8f3f78dc969f_sk
│ │ └── tlsca.order.com-cert.pem
│ └── users
│ └── Admin@order.com
│ ├── msp
│ │ ├── admincerts
│ │ │ └── Admin@order.com-cert.pem
│ │ ├── cacerts
│ │ │ └── ca.order.com-cert.pem
│ │ ├── keystore
│ │ │ └── 94738b964081e602b6043f0975b9b64799e450c506681d0660b047d458196462_sk
│ │ ├── signcerts
│ │ │ └── Admin@order.com-cert.pem
│ │ └── tlscacerts
│ │ └── tlsca.order.com-cert.pem
│ └── tls
│ ├── ca.crt
│ ├── client.crt
│ └── client.key
└── peerOrganizations [节点组织]
├── government.peer.com
│ ├── ca [组织Government的根证书和私钥]
│ │ ├── ca.government.peer.com-cert.pem [ca.government.peer.com]
│ │ └── d7a91d3adecd49c742f6cec9287783f5412d865310311de6dde3041eff432231_sk [私钥]
│ ├── msp [组织身份证书信息]
│ │ ├── admincerts
│ │ ├── cacerts
│ │ │ └── ca.government.peer.com-cert.pem [CA根证书]
│ │ ├── config.yaml
│ │ └── tlscacerts
│ │ └── tlsca.government.peer.com-cert.pem [TLS根证书]
│ ├── peers [存放属于该组织的所有Peer节点]
│ │ └── peer0.government.peer.com
│ │ ├── msp
│ │ │ ├── admincerts
│ │ │ │ └── Admin@government.peer.com-cert.pem [组织管理员的身份验证证书,节点使用此证书验证管理员。]
│ │ │ ├── cacerts
│ │ │ │ └── ca.government.peer.com-cert.pem [CA根证书]
│ │ │ ├── config.yaml
│ │ │ ├── keystore
│ │ │ │ └── 6900d2e33c34cfe8bc8b6413e0d587cb057337de654133ab6813eaba4bc07f17_sk [本节点的身份私钥,节点标识签名]
│ │ │ ├── signcerts
│ │ │ │ └── peer0.government.peer.com-cert.pem [节点的证书]
│ │ │ └── tlscacerts
│ │ │ └── tlsca.government.peer.com-cert.pem [TLS根证书]
│ │ └── tls
│ │ ├── ca.crt == tlsca.government.peer.com-cert.pem [TLS通信CA证书]
│ │ ├── server.crt [TLS通信服务端证书]
│ │ └── server.key [TLS通信服务私钥]
│ ├── tlsca
│ │ ├── 927e236a93f0581a92ccb1c4d65dd8e9bae1e1557725d79747d60f26b874d55c_sk [TLS根证书私钥]
│ │ └── tlsca.government.peer.com-cert.pem [TLS根证书]
│ └── users [存放属于该组织的用户的实体]
│ └── Admin@government.peer.com
│ ├── msp
│ │ ├── admincerts
│ │ ├── cacerts
│ │ │ └── ca.government.peer.com-cert.pem [管理员签发CA根证书]
│ │ ├── config.yaml
│ │ ├── keystore
│ │ │ └── d0c1b5d5d6a88ea0a477b2799c8702fe4704765c8f192aadddb626e8e4128cf1_sk [组织管理员私钥]
│ │ ├── signcerts
│ │ │ └── Admin@government.peer.com-cert.pem [组织管理员证书]
│ │ └── tlscacerts
│ │ └── tlsca.government.peer.com-cert.pem
│ └── tls
│ ├── ca.crt == tlsca.government.peer.com-cert.pem [组织tls根证书]
│ ├── client.crt [TLS通信客户端证书]
│ └── client.key [TLS通信客户端私钥]
└── public.peer.com
├── ca
│ ├── c4752a7c5c82202eb60f2776edd506f8a12fc18a263c98333908b7982cecc348_sk
│ └── ca.public.peer.com-cert.pem
├── msp
│ ├── admincerts
│ ├── cacerts
│ │ └── ca.public.peer.com-cert.pem
│ ├── config.yaml
│ └── tlscacerts
│ └── tlsca.public.peer.com-cert.pem
├── peers
│ └── peer0.public.peer.com
│ ├── msp
│ │ ├── admincerts
│ │ │ └── Admin@public.peer.com-cert.pem
│ │ ├── cacerts
│ │ │ └── ca.public.peer.com-cert.pem
│ │ ├── config.yaml
│ │ ├── keystore
│ │ │ └── c3d1f75d9e6a4ab2c80ea6a27e3dd26aeb2b8a47b35ef9e39d66a6e915f33577_sk
│ │ ├── signcerts
│ │ │ └── peer0.public.peer.com-cert.pem
│ │ └── tlscacerts
│ │ └── tlsca.public.peer.com-cert.pem
│ └── tls
│ ├── ca.crt
│ ├── server.crt
│ └── server.key
├── tlsca
│ ├── 4898d32e49c06d7045a9d2f6e5ef047ab2ec472a76fd83bcd243c36f90d9c09b_sk
│ └── tlsca.public.peer.com-cert.pem
└── users
└── Admin@public.peer.com
├── msp
│ ├── admincerts
│ ├── cacerts
│ │ └── ca.public.peer.com-cert.pem
│ ├── config.yaml
│ ├── keystore
│ │ └── 2f4c9c32ff8ec24d7ef680407ef636b6c5802108fc16e655525939ad01a87364_sk
│ ├── signcerts
│ │ └── Admin@public.peer.com-cert.pem []
│ └── tlscacerts
│ └── tlsca.public.peer.com-cert.pem
└── tls
├── ca.crt
├── client.crt
└── client.key

查看节点证书信息

1
openssl x509 -in peers/peer0.government.peer.com/msp/signcerts/peer0.government.peer.com-cert.pem -text -noout

验证节点证书的签发机构

1
2
3
4
5
6
7
openssl verify -CAfile ca/ca.government.peer.com-cert.pem peers/peer0.government.peer.com/msp/signcerts/peer0.government.peer.com-cert.pem
peers/peer0.government.peer.com/msp/signcerts/peer0.government.peer.com-cert.pem: OK

openssl x509 -text -in peers/peer0.government.peer.com/msp/signcerts/peer0.government.peer.com-cert.pem | grep OU=
Subject: C=CN, ST=Sichuan, L=Chengdou, OU=peer, CN=peer0.government.peer.com

OU类型是peer。

验证Government组织的管理员证书签发机构。

1
2
3
4
5
6
7
openssl verify -CAfile ca/ca.government.peer.com-cert.pem users/Admin@government.peer.com/msp/signcerts/Admin@government.peer.com-cert.pem 
users/Admin@government.peer.com/msp/signcerts/Admin@government.peer.com-cert.pem: OK

openssl x509 -text -in users/Admin@government.peer.com/msp/signcerts/Admin@government.peer.com-cert.pem | grep OU
Subject: C=CN, ST=Sichuan, L=Chengdou, OU=admin, CN=Admin@government.peer.com

OU类型是admin。

在Fabric中CA有2类,一类是通信层面的TLS证书。另外一个层面是节点,用户层面的证书,这块证书是涉及节点权限,用户访问权限的控制。

TLS的CA表示着,访问端口的时候,需要带上对应端口使用的TLSCA证书文件。