資源描述:
《openssl生成證書及吊銷列表》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、openssl生成證書及吊銷列表一,先來講講基本概念。證書分類:按類型可以分為CA證書和用戶用戶證書,我們我說的root也是特殊的CA證書。用戶證書又可以根據(jù)用途分類,放在服務(wù)器端的稱為服務(wù)器證書,放在客戶端一般稱為客戶端證書(這種說法不是很準(zhǔn)確,只是一種理解。實際應(yīng)該是在對客戶端認證時才會用到客戶端證書且root、ca證書都可以放在客戶端),記住,這兩種證書都應(yīng)為用戶證書。一般可以理解為證書由key和證書(沒有key的文件也稱為證書)組成,誰擁有這兩個東西才真正擁有這個證書。好比鎖是有鑰匙和鎖頭組成的,你得兩都有。你只有鎖
2、頭鎖住東西,卻沒有鑰匙打開,也沒什么用。如果你對證書不了解,那一定要知道證書這三點作用(純個人認為比較重要三點):1,簽名:通過簽名技術(shù)可以保證證書擁有者的唯一性,而且所有信息沒有被篡改。想了解數(shù)字簽名的自己百度一下。2,提供公鑰:通過簽名技術(shù)知道證書擁有者是A,且所有信息都是A,就可以拿到A的公鑰算法及公鑰。所以有些人理解為證書就是一個公鑰(個人認為這種理解與實際偏差較大)。3,頒發(fā)者:找到頒發(fā)者很重要,每個證書都有一個頒發(fā)者。這個在證書認證時用得到。對于用戶(人)來說還是通過證書名稱來區(qū)分證書,下面講解幾種常見的證書。a
3、).cert或.crt文件:這種證書倒是可以理解為公鑰證書,因為它最主要的作用就是來提供公鑰的,只是一種理解,簽名認證這些作用一樣不會少。這種文件不含有key,就好像一個打開的鎖頭,可以發(fā)給任何人。所以擁有.cer或.crt文件的不是真正的擁有者,因為你可以用證書里的公鑰加密,但并沒有私鑰解密。b).pfx文件:這種證書文件可以理解為.cer文件與key結(jié)合體,即擁有.pfx證書相當(dāng)同時擁有公鑰與私鑰。即可以加密也可以解密。c).key文件:就是鑰匙啦。鎖頭可以給任何人,但是鑰匙只能自己保留,所以這玩意一定要保存好。d).p
4、7b文件:為證書鏈文件,也不含私鑰。證書鏈即證書的擁有者、頒發(fā)者、頒發(fā)者的頒發(fā)者、依次類推的證書合成一個文件。以上對證書概念基礎(chǔ)的了解,有基礎(chǔ)的可以不用看。實際證書分類根據(jù)編碼方式來區(qū)分的,只是為了方便理解才這么分的。當(dāng)我們需要向?qū)Ψ桨l(fā)送加密數(shù)據(jù)時,我們只需要對方的cer或crt文件就可以了。而需要對方向自己發(fā)送加密數(shù)據(jù)時,自己得擁有key,并且對方要有自己公鑰(從cer文件獲得)。二、環(huán)境搭建安裝openssl這個就不講了,現(xiàn)在很多l(xiāng)inux版本都默認安裝了。先來看下配置文件中一段。默認配置文件/usr/local/ope
5、nssl/ssl/openssl.cnf或者/etc/pki/tls/openssl.cnf。dir=./demoCA#Whereeverythingiskeptcerts=$dir/certs#Wheretheissuedcertsarekeptcrl_dir=$dir/crl#Wheretheissuedcrlarekeptdatabase=$dir/index.txt#databaseindexfile.#unique_subject=no#Setto'no'toallowcreationof#severalctifi
6、cateswithsamesubject.new_certs_dir=$dir/newcerts#defaultplacefornewcerts.certificate=$dir/cacert.pem#TheCAcertificateserial=$dir/serial#Thecurrentserialnumbercrlnumber=$dir/crlnumber#thecurrentcrlnumber#mustbecommentedouttoleaveaV1CRLcrl=$dir/crl.pem#ThecurrentCRLp
7、rivate_key=$dir/private/cakey.pem#TheprivatekeyRANDFILE=$dir/private/.rand#privaterandomnumberfile根據(jù)上面配置文件就知道,我們得搭建相同的目錄結(jié)構(gòu)環(huán)境。先創(chuàng)建一個目錄test,并且將1,配置文件cp到test目錄下。[iyunv@localhost~]#mkdirtest[iyunv@localhost~]#cdtest[iyunv@localhosttest]#cp/usr/local/openssl/ssl/openssl.
8、cnf./[iyunv@localhosttest]#lsopenssl.cnf2,根據(jù)配置文件中目錄結(jié)構(gòu)可知有個demoCA目錄,目錄下有各種文件。[iyunv@localhosttest]#mkdir./demoCA./demoCA/newcerts./demoCA/private[i