Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537
ca.cer
中間證書和根證書
.cer
你申請(qǐng)的ssl證書
.cer
包括了 ca.cer 和 .cer 的全鏈證書
.key
證書的私鑰
什么是證書鏈
證書鏈的意思是有一個(gè)證書機(jī)構(gòu)A,A生成證書B,B也可以生成證書C,那么A是根證書。
操作系統(tǒng)預(yù)先安裝的一些根證書,都是國(guó)際上很有權(quán)威的證書機(jī)構(gòu),比如 、 ENTRUST 這些公司。
我們普通申請(qǐng)的ssl證書都是這些根證書的孫證書。根證書簽發(fā)中間證書,中間證書簽發(fā)ssl證書。
證書鏈的順序是:ssl證書+中間證書+根證書。證書鏈上的每個(gè)證書都是被它相鄰的證書簽發(fā)。
證書以證書鏈的形式存在, 只有當(dāng)整個(gè)證書鏈上的證書都有效時(shí),才會(huì)認(rèn)定當(dāng)前證書合法 :
最上層為root,也就是通常所說的CA,用來頒發(fā)證書最下層為end-user,對(duì)應(yīng)是每個(gè)網(wǎng)站購(gòu)買使用的ssl證書中間一層為,是二級(jí)CA,這一層可以繼續(xù)劃分為多層,用來幫助root給end-user頒發(fā)證書。 瀏覽器中證書的驗(yàn)證順序是
首先檢查你購(gòu)買的ssl證書的簽發(fā)者是不是可信根證書,如果不是那么會(huì)檢查你的證書的簽發(fā)機(jī)構(gòu)是否被可信根證書簽發(fā),以此類推,直到找到一個(gè)可信的根證書,標(biāo)示你的證書是可信的,如果找不到那么你的證書是不可信的。
根證書是用來簽發(fā)證書的,不參與通信,一般會(huì)內(nèi)置在客戶端的瀏覽器中。如果服務(wù)器沒有安裝中間證書,那么對(duì)于某些非主流瀏覽器、安卓手機(jī)設(shè)備,應(yīng)用程序等可能沒辦法驗(yàn)證ssl證書的真實(shí)性,所以為了兼容所有客戶端,服務(wù)器需要安裝中間證書。
例如下面圖中情況:你從證書2處購(gòu)買了證書3,但是證書2不是默認(rèn)包含在瀏覽器種的可信證書,中間證書2是根證書1簽發(fā)的證書,如果服務(wù)器端只發(fā)送證書3不包含證書2,那么瀏覽器找不到證書3的簽發(fā)者證書2,這樣整個(gè)證書的驗(yàn)證鏈條就斷裂了,你的證書就會(huì)被瀏覽器標(biāo)識(shí)為無效證書“Invalid ” 或 “ not trusted”
總結(jié)
根證書是第三方被大家信任的認(rèn)證機(jī)構(gòu)自簽名的證書,通常瀏覽器會(huì)內(nèi)置。
服務(wù)器證書是包含包含“ssl證書+中間證書”的證書鏈,對(duì)于某些不知名的中間證書,瀏覽器是不內(nèi)置,服務(wù)器需要把ssl證書連同中間證書一起發(fā)送給瀏覽器,如果證書鏈不全,你的證書在這些瀏覽器上會(huì)不被信任。
用戶證書有兩種理解,如果對(duì)于證書頒發(fā)機(jī)構(gòu)和服務(wù)器來說你可以理解為你申請(qǐng)的ssl證書;對(duì)于服務(wù)器-客戶端交互來說是客戶端的證書,比如我們的u盾。
大家可能有一個(gè)疑問,服務(wù)器上要不要安裝根證書?從上面分析可以知道,瀏覽器是內(nèi)置了根證書,不需要我們?cè)诜?wù)器的證書鏈上加根證書。
如何安裝中間證書?不同web服務(wù)器有不同的設(shè)置,apache有個(gè)變量ile專門對(duì)應(yīng)中間證書bundle,Nginx需要把ssl證書和中間證書打包為一個(gè)文件。
證書格式轉(zhuǎn)換
cer和pem格式文件都是證書文件,key文件是私鑰文件,證書機(jī)構(gòu)會(huì)將兩種格式的文件發(fā)放給客戶。
pem或cer格式轉(zhuǎn)為JKS格式文件包括公鑰和私鑰
第一步:在openssl命令行下輸入如下命令,將pem或cer證書轉(zhuǎn)pfx格式,回車后需要輸入兩次密碼
pkcs12 -export -out server.pfx -inkey server.key -in server.pem(server.cer)
第二步:在命令行下使用java 的keytool工具,將pfx文件轉(zhuǎn)換成jks文件
keytool - - server.pfx - server.jks - PKCS12 - JKS
pem格式證書轉(zhuǎn)成cer格式
先在終端cd到文件目錄下 然后
openssl x509 -outform der -in xxx.pem -out yyy.cer
或者直接把pem文件雙擊導(dǎo)入鑰匙串,然后再鑰匙串里右鍵導(dǎo)出
(xxx 是原證書的名稱,yyy是轉(zhuǎn)格式生成的證書名稱)
crt格式轉(zhuǎn)成der格式
先在終端cd到文件目錄下 然后
openssl x509 -in xxx.crt -out yyy.der -outform DER
(xxx 是原證書的名稱,yyy是轉(zhuǎn)格式生成的證書名稱)
參考:
*請(qǐng)認(rèn)真填寫需求信息,我們會(huì)在24小時(shí)內(nèi)與您取得聯(lián)系。