單個(gè)fabric-ca-server啟動(dòng)多個(gè)CA服務(wù)

單個(gè)fabric-ca-server啟動(dòng)多個(gè)CA服務(wù)

這是一個(gè)神奇的功能枝嘶,至今也不知道這到底有什么用處蛋济。

這里只是記錄有這么一個(gè)功能旨袒,以及如何使用這個(gè)功能察绷。

要使用多CA服務(wù)的功能干签,有兩種設(shè)定方法,

  • 一種是設(shè)定cacount
  • 另一種是設(shè)定cafiles

不管哪種方式最終功能都類似拆撼。

下面只以設(shè)定cacount為例容劳。

  1. 第一步1: 初始化ca-server
$ fabric-ca-server init -b admin:adminpw --cacount 2

會(huì)創(chuàng)建三套配置文件:父ca-server和兩個(gè)子ca-server:

├── ca
│   ├── ca1
│   │   ├── ca-cert.pem
│   │   ├── fabric-ca-config.yaml
│   │   ├── fabric-ca-server_ca1.db
│   │   └── msp
│   │       └── keystore
│   │           └── 2c9210cf9314e0fff4a5ec9a21c50c98389a7b0c2b54518f7af42924e9ffdaca_sk
│   └── ca2
│       ├── ca-cert.pem
│       ├── fabric-ca-config.yaml
│       ├── fabric-ca-server_ca2.db
│       └── msp
│           └── keystore
│               └── d90879147e7dd56a1599ddb541a59c4e35aaec9dcb0076cece6d67eb522ba6c1_sk
├── ca-cert.pem
├── fabric-ca-server-config.yaml
├── fabric-ca-server.db
└── msp
    └── keystore
        └── 069d21d538b6ddb297abc7beb6110b91427cb27e42004a1d2a54bd9f7c785ad3_sk

兩個(gè)子ca-server的配置分別在ca/ca1和/ca/ca2目錄下面。

比較兩個(gè)個(gè)子ca-server配置的差異闸度,主要是名字不一樣竭贩。

ca/ca1/fabric-ca-config.yaml                     |  ca/ca2/fabric-ca-config.yaml
-------------------------------------------------+---------------------------------------
ca:                                              |  ca:
    # Name of this CA                            |    # Name of this CA
    name: ca1                                    |    name: ca2                                                                                

子ca-server里面關(guān)于公共的部分都存儲(chǔ)在父ca-server的配置文件里面,例如監(jiān)聽端口這些莺禁。

  1. 第二步留量,啟動(dòng)ca-server
$ fabric-ca-server start

啟動(dòng)了一個(gè)進(jìn)程,監(jiān)聽在一個(gè)端口哟冬,提供給三個(gè)ca-server使用楼熄。

這三個(gè)ca-server有什么關(guān)系呢?
答:什么關(guān)系也沒(méi)有浩峡,各管各的可岂。各自生產(chǎn)各自的根證書,各自完成自簽名翰灾,也不共享根證書缕粹。
這就是我的主要疑問(wèn),要這單個(gè)fabric-ca-server啟動(dòng)多個(gè)CA服務(wù)的功能有什么用纸淮?平斩??

  1. 第三步萎馅,使用ca-server

不管他有什么用處吧双戳,我們只管怎么用就好了虹蒋。
和單個(gè)的ca-server一樣使用糜芳,差別只是需要在命令行指定 --caname表示訪問(wèn)哪一個(gè)ca-server,如果沒(méi)有指定魄衅,則是訪問(wèn)父ca-server

enroll bootstrap用戶

$ fabric-ca-client enroll --home ca0admin --url http://admin:adminpw@localhost:7054
$ fabric-ca-client enroll --home ca1admin --url http://admin:adminpw@localhost:7054 --caname ca1
$ fabric-ca-client enroll --home ca2admin --url http://admin:adminpw@localhost:7054 --caname ca2

注冊(cè)新用戶

$ fabric-ca-client register --home ca0admin --id.name tester00 --id.secret testpasswd --id.type user --id.affiliation org1.department2
$ fabric-ca-client register --home ca1admin --id.name tester01 --id.secret testpasswd --id.type user --id.affiliation org1.department2 --caname ca1
$ fabric-ca-client register --home ca2admin --id.name tester02 --id.secret testpasswd --id.type user --id.affiliation org1.department2 --caname ca2

enroll新用戶

$ fabric-ca-client enroll   --home tester00 -u http://tester00:testpasswd@localhost:7054
$ fabric-ca-client enroll   --home tester01 -u http://tester01:testpasswd@localhost:7054 --caname ca1
$ fabric-ca-client enroll   --home tester02 -u http://tester02:testpasswd@localhost:7054 --caname ca2

如果沒(méi)有指定指定caname錯(cuò)誤峭竣,那么訪問(wèn)就會(huì)失敗,例如:

fabric-ca-client enroll   --home tester01 -u http://tester02:testpasswd@localhost:7054 --caname ca1
2018/05/17 15:03:29 [INFO] generating key: &{A:ecdsa S:256}
2018/05/17 15:03:29 [INFO] encoded CSR
Error: Response from server: Error Code: 20 - Authorization failure

因?yàn)橛脩魌ester02根本不在ca1里面晃虫,tester02是注冊(cè)到ca2里面的皆撩。

我們?cè)谶M(jìn)到CAserver內(nèi)部,可以看CA里面的數(shù)據(jù)庫(kù):

$ sqlite3 ca/ca1/fabric-ca-server_ca1.db 
SQLite version 3.7.17 2013-05-20 00:56:22
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> select * from users;
admin|$2a$10$9R3vlQ7Qz6XfO2PaB6.lfOMMKyMVzg0lna/8wFvqEdJFTMES7xeUq|client||[{"name":"hf.Revoker","value":"1"},{"name":"hf.IntermediateCA","value":"1"},{"name":"hf.GenCRL","value":"1"},{"name":"hf.Registrar.Attributes","value":"*"},{"name":"hf.AffiliationMgr","value":"1"},{"name":"hf.Registrar.Roles","value":"peer,orderer,client,user"},{"name":"hf.Registrar.DelegateRoles","value":"peer,orderer,client,user"}]|2|-1|1
tester01|$2a$10$6qylJvSlC7UziAF8MfD26OHMLbk9oo5L7Bj2Q6hh/seZJGlbG6f2C|user|org1.department2|[{"name":"hf.EnrollmentID","value":"tester01","ecert":true},{"name":"hf.Type","value":"user","ecert":true},{"name":"hf.Affiliation","value":"org1.department2","ecert":true}]|0|-1|1
sqlite> 

在ca1的數(shù)據(jù)庫(kù)里面只有admin和tester01兩個(gè)用戶名,而沒(méi)有tester00和tester02的用戶扛吞;其他兩個(gè)ca-server也一樣呻惕。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市滥比,隨后出現(xiàn)的幾起案子亚脆,更是在濱河造成了極大的恐慌,老刑警劉巖盲泛,帶你破解...
    沈念sama閱讀 221,406評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件濒持,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡寺滚,警方通過(guò)查閱死者的電腦和手機(jī)柑营,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,395評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)村视,“玉大人官套,你說(shuō)我怎么就攤上這事∫峡祝” “怎么了虏杰?”我有些...
    開封第一講書人閱讀 167,815評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)勒虾。 經(jīng)常有香客問(wèn)我纺阔,道長(zhǎng),這世上最難降的妖魔是什么修然? 我笑而不...
    開封第一講書人閱讀 59,537評(píng)論 1 296
  • 正文 為了忘掉前任笛钝,我火速辦了婚禮,結(jié)果婚禮上愕宋,老公的妹妹穿的比我還像新娘玻靡。我一直安慰自己,他們只是感情好中贝,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,536評(píng)論 6 397
  • 文/花漫 我一把揭開白布囤捻。 她就那樣靜靜地躺著,像睡著了一般邻寿。 火紅的嫁衣襯著肌膚如雪蝎土。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,184評(píng)論 1 308
  • 那天绣否,我揣著相機(jī)與錄音誊涯,去河邊找鬼。 笑死蒜撮,一個(gè)胖子當(dāng)著我的面吹牛暴构,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 40,776評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼取逾,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼耗绿!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起砾隅,我...
    開封第一講書人閱讀 39,668評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤缭乘,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后琉用,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體堕绩,經(jīng)...
    沈念sama閱讀 46,212評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,299評(píng)論 3 340
  • 正文 我和宋清朗相戀三年邑时,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了奴紧。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,438評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡晶丘,死狀恐怖黍氮,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情浅浮,我是刑警寧澤沫浆,帶...
    沈念sama閱讀 36,128評(píng)論 5 349
  • 正文 年R本政府宣布,位于F島的核電站滚秩,受9級(jí)特大地震影響专执,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜郁油,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,807評(píng)論 3 333
  • 文/蒙蒙 一本股、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧桐腌,春花似錦拄显、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,279評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)嘶朱。三九已至月匣,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間昂灵,已是汗流浹背舱禽。 一陣腳步聲響...
    開封第一講書人閱讀 33,395評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工炒刁, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留恩沽,地道東北人誊稚。 一個(gè)月前我還...
    沈念sama閱讀 48,827評(píng)論 3 376
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親里伯。 傳聞我的和親對(duì)象是個(gè)殘疾皇子城瞎,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,446評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容