--《轉(zhuǎn)載》【鏈接】SSL雙向認(rèn)證以及證書的制作和使用
http://www.2cto.com/article/201411/347512.html
客戶端認(rèn)證服務(wù)器:
正規(guī)的做法是:到國(guó)際知名的證書頒發(fā)機(jī)構(gòu),如VeriSign申請(qǐng)一本服務(wù)器證書屯远,比如支付寶的首頁(yè)蔓姚,點(diǎn)擊小鎖的圖標(biāo),可以看到支付寶是通過(guò)VeriSign認(rèn)證頒發(fā)的服務(wù)器證書:
我們用的操作系統(tǒng)(windows, linux, unix ,android, ios等)都預(yù)置了很多信任的根證書慨丐,比如我的windows中就包含VeriSign的根證書坡脐,那么瀏覽器訪問(wèn)服務(wù)器比如支付寶www.alipay.com時(shí),SSL協(xié)議握手時(shí)服務(wù)器就會(huì)把它的服務(wù)器證書發(fā)給用戶瀏覽器房揭,而這本服務(wù)器證書又是比如VeriSign頒發(fā)的备闲,自然就驗(yàn)證通過(guò)了晌端。
國(guó)內(nèi)許多公司的做法:自己做根證書CA(自己充當(dāng)類似于VeriSign的角色),然后讓用戶下載安裝根CA(當(dāng)然了恬砂,其中只含有公鑰)到機(jī)器中咧纠,12306就是這樣干的(SRCA就是12306的根證書),然后再自己給自己頒發(fā)服務(wù)器證書泻骤,這樣用戶機(jī)器上也有他的CA漆羔,服務(wù)器發(fā)來(lái)的服務(wù)器證書也是這本CA頒發(fā)的,當(dāng)然也順利通過(guò)了狱掂。
服務(wù)器認(rèn)證客戶端:
服務(wù)器端通過(guò)根CA給客戶端頒發(fā)客戶端證書演痒,在制作客戶端證書時(shí)加上和機(jī)器相關(guān)的信息就可以保證在特定的時(shí)候某個(gè)帳號(hào)只能在這臺(tái)機(jī)器上和服務(wù)器交換報(bào)文,比如我們用支付寶時(shí)必須下載安裝數(shù)字證書時(shí)趋惨,可以命名這本證書叫"我的筆記本"或者是"公司電腦"之類的嫡霞,就是支付寶給用戶頒發(fā)證書,只能在這臺(tái)機(jī)器上用希柿,你換了機(jī)器就必須重新申請(qǐng)诊沪。建立SSL連接時(shí),先是服務(wù)器將自己的服務(wù)器證書發(fā)給客戶端曾撤,驗(yàn)證通過(guò)后端姚,客戶端就把自己的客戶端證書發(fā)給服務(wù)器進(jìn)行驗(yàn)證,如果通過(guò)挤悉,再進(jìn)行后面的處理渐裸。
下面來(lái)說(shuō)說(shuō)如何自己制作根CA證書以及服務(wù)器證書和客戶端證書:
客戶端安裝服務(wù)器根證書ca.crt到客戶端信任證書庫(kù)中,服務(wù)器端安裝服務(wù)器根證書ca.crt到服務(wù)器信任證書庫(kù)中装悲。
SSL握手時(shí)昏鹃,服務(wù)器先將服務(wù)器證書server.p12發(fā)給客戶端,客戶端會(huì)到客戶端信任證書庫(kù)中進(jìn)行驗(yàn)證诀诊,
因?yàn)閟erver.p12是根證書CA頒發(fā)的洞渤,所以驗(yàn)證通過(guò);然后客戶端將客戶端證書client.p12發(fā)給服務(wù)器属瓣,同理因?yàn)閏lient.p12是根證書CA頒發(fā)的载迄,所以驗(yàn)證通過(guò)。
先下載安裝xca工具抡蛙,地址是http://xca.hohnstaedt.de/
先用xca創(chuàng)建一本ca證書
xca打開的界面
依次File, New DataBase护昧,選擇xdb文件保存路徑,再輸入密碼
切換到Certificates頁(yè)面,點(diǎn)擊New Certificate
出現(xiàn)如下界面
因?yàn)橐獎(jiǎng)?chuàng)建根證書,這里選擇序號(hào)為1的自認(rèn)證證書虽缕,簽名算法選擇SHA 256仪壮,證書模版選擇默認(rèn)CA绽榛,再點(diǎn)擊Apply all(這個(gè)不能漏)如下所示:
再切到Subject頁(yè)面遥金,填好各個(gè)字段,都可以隨便填
再點(diǎn)擊Generate a new key生產(chǎn)私鑰
最后點(diǎn)擊OK蒜田,CA證書做好了稿械,有效期默認(rèn)10年
將根證書導(dǎo)出成只包含公鑰的證書格式,這本根證書就是放在網(wǎng)站上供用戶下載安裝冲粤,或主動(dòng)安裝到客戶機(jī)器中的:
制作服務(wù)器證書美莫、客戶端證書和制作CA證書差不多,只有兩個(gè)地方不一樣:
選擇已經(jīng)制作好的根CA梯捕,然后點(diǎn)擊New Certificate
簽名時(shí)厢呵,選擇使用根證書,這里是hangzhou進(jìn)行簽名頒發(fā)傀顾,然后證書模版選擇服務(wù)器(制作客戶端證書就選擇HTTPS_client)襟铭,其他都和制作根證書一樣,然后點(diǎn)擊Apply
all(這個(gè)一定不能忘)短曾,然后再切到Subject寒砖、Extension頁(yè)面填寫相應(yīng)的東西就OK了
制作完成:
然后再將服務(wù)器證書導(dǎo)出來(lái),選擇p12格式
同理制作客戶端證書嫉拐,并將之導(dǎo)出哩都,也是p12格式的證書,包含私鑰