openssl數字證書常見格式與協議介紹

證書主要的文件類型和協議有: PEM、DER、PFX、JKS、KDB、CER、KEY、CSRCRTCRL 、OCSP、SCEP等。算法

PEM – Openssl使用 PEM(Privacy Enhanced Mail)格式來存放各類信息,它是 openssl 默認採用的信息存放方式。Openssl 中的 PEM 文件通常包含以下信息:瀏覽器

  1. 內容類型:代表本文件存放的是什麼信息內容,它的形式爲「——-BEGIN XXXX ——」,與結尾的「——END XXXX——」對應。
  2. 頭信息:代表數據是若是被處理後存放,openssl 中用的最多的是加密信息,好比加密算法以及初始化向量 iv。
  3. 信息體:爲 BASE64 編碼的數據。能夠包括全部私鑰(RSA 和 DSA)、公鑰(RSA 和 DSA)和 (x509) 證書。它存儲用 Base64 編碼的 DER 格式數據,用 ascii 報頭包圍,所以適合系統之間的文本模式傳輸。

使用PEM格式存儲的證書:
—–BEGIN CERTIFICATE—–
MIICJjCCAdCgAwIBAgIBITANBgkqhkiG9w0BAQQFADCBqTELMAkGA1UEBhMCVVMx
………
1p8h5vkHVbMu1frD1UgGnPlOO/K7Ig/KrsU=
—–END CERTIFICATE—–
使用PEM格式存儲的私鑰:
—–BEGIN RSA PRIVATE KEY—–
MIICJjCCAdCgAwIBAgIBITANBgkqhkiG9w0BAQQFADCBqTELMAkGA1UEBhMCVVMx
………
1p8h5vkHVbMu1frD1UgGnPlOO/K7Ig/KrsU=
—–END RSA PRIVATE KEY—–
使用PEM格式存儲的證書請求文件:
—–BEGIN CERTIFICATE REQUEST—–
MIICJjCCAdCgAwIBAgIBITANBgkqhkiG9w0BAQQFADCBqTELMAkGA1UEBhMCVVMx
………
1p8h5vkHVbMu1frD1UgGnPlOO/K7Ig/KrsU=
—–END CERTIFICATE REQUEST—–安全

DER – 辨別編碼規則 (DER) 可包含全部私鑰、公鑰和證書。它是大多數瀏覽器的缺省格式,並按 ASN1 DER 格式存儲。它是無報頭的 - PEM 是用文本報頭包圍的 DER。
PFX 或 P12 – 公鑰加密標準 #12 (PKCS#12) 可包含全部私鑰、公鑰和證書。其以二進制格式存儲,也稱爲 PFX 文件。一般能夠將Apache/OpenSSL使用的「KEY文件 + CRT文件」格式合併轉換爲標準的PFX文件,你能夠將PFX文件格式導入到微軟IIS 5/六、微軟ISA、微軟Exchange Server等軟件。轉換時須要輸入PFX文件的加密密碼。
JKS – 一般能夠將Apache/OpenSSL使用的「KEY文件 + CRT文件」格式」轉換爲標準的Java Key Store(JKS)文件。JKS文件格式被普遍的應用在基於JAVA的WEB服務器、應用服務器、中間件。你能夠將JKS文件導入到TOMCAT、 WEBLOGIC 等軟件。
KDB – 一般能夠將Apache/OpenSSL使用的「KEY文件 + CRT文件」格式轉換爲標準的IBM KDB文件。KDB文件格式被普遍的應用在IBM的WEB服務器、應用服務器、中間件。你能夠將KDB文件導入到IBM HTTP Server、IBM Websphere 等軟件。
CSR - 證書請求文件(Certificate Signing Request)。生成 X509 數字證書前,通常先由用戶提交證書申請文件,而後由 CA 來簽發證書。大體過程以下(X509 證書申請的格式標準爲 pkcs#10 和 rfc2314):服務器

  1. 用戶生成本身的公私鑰對;
  2. 構造本身的證書申請文件,符合 PKCS#10 標準。該文件主要包括了用戶信息、公鑰以及一些可選的屬性信息,並用本身的私鑰給該內容簽名;
  3. 用戶將證書申請文件提交給 CA;
  4. CA 驗證簽名,提取用戶信息,並加上其餘信息(好比頒發者等信息),用 CA 的私鑰簽發數字證書;
  5. 說明:數字證書(如x.509)是將用戶(或其餘實體)身份與公鑰綁定的信息載體。一個合法的數字證書不只要符合 X509 格式規範,還必須有 CA 的簽名。用戶不只有本身的數字證書,還必須有對應的私鑰。X509v3 數字證書主要包含的內容有:證書版本、證書序列號、簽名算法、頒發者信息、有效時間、持有者信息、公鑰信息、頒發者 ID、持有者 ID 和擴展項。

OCSP – 在線證書狀態協議(OCSP,Online Certificate Status Protocol,rfc2560)用於實時代表證書狀態。OCSP 客戶端經過查詢 OCSP 服務來肯定一個證書的狀態,能夠提供給使用者一個或多個數字證書的有效性資料,它創建一個可實時響應的機制,讓用戶能夠實時確認每一張證書的有效性,解決由CRL引起的安全問題。。OCSP 能夠經過 HTTP協議來實現。rfc2560 定義了 OCSP 客戶端和服務端的消息格式。
CER  - 通常指使用DER格式的證書。
CRT - 證書文件。能夠是PEM格式。
KEY   - 通常指PEM格式的私鑰文件。
CRL - 證書吊銷列表 (Certification Revocation List) 是一種包含撤銷的證書列表的簽名數據結構。CRL 是證書撤銷狀態的公佈形式,CRL 就像信用卡的黑名單,用於公佈某些數字證書再也不有效。CRL 是一種離線的證書狀態信息。它以必定的週期進行更新。CRL 能夠分爲徹底 CRL和增量 CRL。在徹底 CRL 中包含了全部的被撤銷證書信息,增量 CRL 由一系列的 CRL 來代表被撤銷的證書信息,它每次發佈的 CRL 是對前面發佈 CRL 的增量擴充。基本的 CRL 信息有:被撤銷證書序列號、撤銷時間、撤銷緣由、簽名者以及 CRL 簽名等信息。基於 CRL 的驗證是一種不嚴格的證書認證。CRL 能證實在 CRL 中被撤銷的證書是無效的。可是,它不能給出不在 CRL 中的證書的狀態。若是執行嚴格的認證,須要採用在線方式進行認證,即 OCSP 認證。通常是由CA簽名的一組電子文檔,包括了被廢除證書的惟一標識(證書序列號),CRL用來列出已通過期或廢除的數字證書。它每隔一段時間就會更新,所以必須按期下載該清單,纔會取得最新信息。
SCEP - 簡單證書註冊協議。基於文件的證書登記方式須要從您的本地計算機將文本文件複製和粘貼到證書發佈中心,和從證書發佈中心複製和粘貼到您的本地計算機。 SCEP能夠自動處理這個過程可是CRLs仍然須要手工的在本地計算機和CA發佈中心之間進行復制和粘貼。
PKCS7 – 加密消息語法(pkcs7),是各類消息存放的格式標準。這些消息包括:數據、簽名數據、數字信封、簽名數字信封、摘要數據和加密數據。
PKCS12 – pkcs12 (我的數字證書標準)用於存放用戶證書、crl、用戶私鑰以及證書鏈。pkcs12 中的私鑰是加密存放的。數據結構

相關文章
相關標籤/搜索