關于證書的那些事:自簽名證書和私有CA簽名證書等

證書的三個作用 加密通信和身份驗證(驗證對方確實是對方聲稱的對象)和數據完整性(無法被修改,修改了會被知)

證書類型:
x509的證書編碼格式有兩種
1.PEM(Privacy-enhanced Electronic Mail) 是明文格式的 以 -----BEGIN CERTIFICATE-----開頭,已-----END CERTIFICATE-----結尾,中間是經過base64編碼的內容,apache需要的證書就是這類編碼的證書 查看這類證書的信息的命令為 :openssl x509 -noout -text -in server.pem
其實PEM就是把DER的內容進行了一次base64編碼
2.DER 是二進制格式的證書 查看這類證書的信息的命令為 :openssl x509 -noout -text -inform der -in server.der

擴展名:
.crt 證書文件 ,可以是DER(二進制)編碼的,也可以是PEM( ASCII (Base64) )編碼的 ,在類unix系統中比較常見
.cer 也是證書 常見于Windows系統 編碼類型同樣可以是DER或者PEM的,windows 下有工具可以轉換crt到cer
.csr 證書簽名請求 一般是生成請求以后發送給CA,然后CA會給你簽名并發回證書
.key 一般公鑰或者密鑰都會用這種擴展名,可以是DER編碼的或者是PEM編碼的 查看DER編碼的(公鑰或者密鑰)的文件的命令為 openssl rsa -inform DER -noout -text -in xxx.key 查看PEM編碼的(公鑰或者密鑰)的文件的命令為 openssl rsa -inform PEM -noout -text -in xxx.key
.p12 證書 包含一個X509證書和一個被密碼保護的私鑰

自簽名證書和CA簽名證書的區別
自簽名的證書無法被吊銷,CA簽名的證書可以被吊銷 能不能吊銷證書的區別在于,如果你的私鑰被黑客獲取,如果證書不能被吊銷,則黑客可以偽裝成你與用戶進行通信

如果你的規劃需要創建多個證書,那么使用私有CA的方法比較合適,因為只要給所有的客戶端都安裝了CA的證書,那么以該證書簽名過的證書,客戶端都是信任的,也就是安裝一次就夠了
如果你直接用自簽名證書,你需要給所有的客戶端安裝該證書才會被信任,如果你需要第二個證書,則還的挨個給所有的客戶端安裝證書2才會被信任。

****Linux下使用OpenSSL生成證書****

利用OpenSSL生成庫和命令程序,在生成的命令程序中包括對加/解密算法的測試,openssl程序,ca程序.利用openssl,ca可生成用于C/S模式的證書文件以及CA文件。
證書文件的生成步驟:
一、服務器端
1.生成服務器端的私鑰(key文件);
openssl genrsa -des3 -out server.key 1024
運行時會提示輸入密碼,此密碼用于加密key文件(參數des3是加密算法,也可以選用其他安全的算法),以后每當需讀取此文件(通過openssl提供的命令或API)都需輸入口令.如果不要口令,則可用以下命令去除口令:
openssl rsa -in server.key -out server.key

生成無需密碼的服務器私鑰 ,如果私鑰是有密碼的,則每次啟動web服務器都會要求你輸入密碼

2.生成服務器端證書簽名請求文件(csr文件);
openssl req -new -key server.key -out server.csr
生成Certificate Signing Request(CSR),生成的csr文件交給CA簽名后形成服務端自己的證書.屏幕上將有提示,依照其 提示一步一步輸入要求的個人信息即可(如:Country,province,city,company等).


****注意:前方高能預警!!!!!****
最重要的是有一個common name,可以寫你的名字或者域名。如果為了https申請,這個必須和域名吻合,否則會引發瀏覽器警報。

二、客戶端
1.對客戶端也作同樣的命令生成key及csr文件;
openssl genrsa -des3 -out client.key 1024
openssl req -new -key client.key -out client.csr



三、生成CA證書文件
server.csr與client.csr文件必須有CA的簽名才可形成證書.
1.首先生成CA的key文件:
openssl genrsa -des3 -out ca.key 1024
2.生成CA自簽名證書:
openssl req -new -x509 -key ca.key -out ca.crt
可以加證書過期時間選項 "-days 365".


四、利用CA證書進行簽名

方法一:
可以加證書的有效時間選項 "-days 365".也可以不加時間,標識永久有效
openssl x509 -req -days 365 -in server.csr -CA ca.crt -CAkey ca.key -set_serial 01 -out server.crt

方法二:
用生成的CA證書為server.csr,client.csr文件簽名,利用openssl中附帶的CA.pl文件

  1. 在提示輸入已有的證書文件時,輸入上面已生成的ca.crt證書文件;
    ca.pl –newca
    2.生成服務端證書文件
    openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key -config openssl.cnf



    3.生成客戶端證書文件
    openssl ca -in client.csr -out client.crt -cert ca.crt -keyfile ca.key -config openssl.cnf
    必須保證openssl.cnf在當前目錄下,這個文件可以在apps目錄中找到.



    五、可能出現的錯誤
    錯誤1:
    error loading the config file 'openssl.cnf'
    解決方法
    find . -name "openssl.c*"

    cp /usr/local/ssl/openssl.cnf ./
    錯誤2:




    解決方法
    touch demoCA/serial
    echo "00" > demoCA/serial

三.查看信息
openssl rsa -noout -text -in server.key 查看私鑰信息
openssl req -noout -text -in server.csr 查看簽名請求信息
openssl rsa -noout -text -in ca.key 查看ca的私鑰信息
openssl x509 -noout -text -in ca.crt 查看證書信息
openssl crl -text -in xx.crl 查看一個證書吊銷列表信息
openssl x509 -purpose -in cacert.pem 查看一個證書的額外信息
openssl rsa -in key.pem -pubout -out pubkey.pem 從一個私鑰里面提取出公鑰
openssl rsa -noout -text -pubin -in apache.pub 查看一個公鑰的信息
openssl verify -CAfile 指定CA文件路徑 apache.crt 驗證一個證書是否是某一個CA簽發
openssl s_client -connect 192.168.20.51:443 模擬一個ssl客戶端訪問ssl服務器 如果服務端要求客戶端提供證書 則在加上 -cert 和-key參數 比如 openssl s_client -connect 192.168.20.51:443 -cert client.crt -key client.key
openssl pkcs12 -in path.p12 -out newfile.crt.pem -clcerts -nokeys 從p12文件里面提取證書openssl pkcs12 -in path.p12 -out newfile.key.pem -nocerts -nodes 從p12文件里面提取私鑰

現代瀏覽器檢查一個證書是否仍然有效 兩種方法 OCSP (Online Certificate Status Protocol,在線證書狀態協議) 和crl (Certificate Revoke List ,證書吊銷列表)
這些信息在CA的證書里面應該得有,否則瀏覽器無法檢查由該CA簽過的證書是否還繼續有效 (這句話屬于猜測)
可以試一下導出給京東或者淘寶簽名的CA證書 并用openssl x509 -noout -text -in ca.crt 查看一下,就能看到這兩類信息京東的證書是由GeoTrustSSL進行簽名的,導出GeoTrustSSL CA的證書 然后查看該CA的信息其中有一段信息是這樣

 X509v3 CRL Distribution Points:   

  Full Name:  
  URI:http://g1.symcb.com/crls/gtglobal.crl  

Authority Information Access:   
OCSP - URI:http://g2.symcb.com  

這里說明了它的證書吊銷列表地址和OSCP協議地址有興趣的可以試試給淘寶簽名的CA的證書信息

對已證書吊銷列表 各瀏覽器的行為可以參考一下兩個地址
http://news.netcraft.com/archives/2013/05/13/how-certificate-revocation-doesnt-work-in-practice.html
https://www.trustwave.com/Resources/SpiderLabs-Blog/Defective-By-Design----Certificate-Revocation-Behavior-In-Modern-Browsers/

相關參考信息鏈接

http://blog.csdn.net/sdcxyz/article/details/47220129
http://www.linuxidc.com/Linux/2015-05/117034.htm

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,316評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,481評論 3 415
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,241評論 0 374
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,939評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,697評論 6 409
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,182評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,247評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,406評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,933評論 1 334
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,772評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,973評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,516評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,209評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,638評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,866評論 1 285
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,644評論 3 391
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,953評論 2 373

推薦閱讀更多精彩內容