引:http://blog.csdn.net/anxuegang/article/details/6157927
證書基本的文件類型和協議有: PEM、DER、PFX、JKS、KDB、CER、KEY、CSR、CRT、CRL 、OCSP、SCEP等。
PEM – Openssl使用 PEM(Privacy Enhanced Mail)格式來存放各種信息,它是 openssl 默認採用的信息存放方式。
Openssl 中的 PEM 文件一般包括例如以下信息:
- 內容類型:表明本文件存放的是什么信息內容,它的形式為“——-BEGIN XXXX ——”,與結尾的“——END XXXX——”相應。
- 頭信息:表明數據是假設被處理后存放,openssl 中用的最多的是加密信息,比方加密算法以及初始化向量 iv。
- 信息體:為 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/6、微軟ISA、微軟Exchange Server等軟件。轉換時須要輸入PFX文件的加密password。
JKS – 通常能夠將Apache/OpenSSL使用的“KEY文件 + CRT文件”格式”轉換為標准的Java Key Store(JKS)文件。
JKS文件格式被廣泛的應用在基於JAVA的WEBserver、應用server、中間件。
你能夠將JKS文件導入到TOMCAT、 WEBLOGIC 等軟件。
KDB – 通常能夠將Apache/OpenSSL使用的“KEY文件 + CRT文件”格式轉換為標准的IBM KDB文件。
KDB文件格式被廣泛的應用在IBM的WEBserver、應用server、中間件。你能夠將KDB文件導入到IBM HTTP Server、IBM Websphere 等軟件。
CSR - 證書請求文件(Certificate Signing Request)。
生成 X509 數字證書前,一般先由用戶提交證書申請文件,然后由 CA 來簽發證書。大致步驟例如以下(X509 證書申請的格式標准為 pkcs#10 和 rfc2314):
- 用戶生成自己的公私鑰對;
- 構造自己的證書申請文件,符合 PKCS#10 標准。該文件主要包括了用戶信息、公鑰以及一些可選的屬性信息,並用自己的私鑰給該內容簽名;
- 用戶將證書申請文件提交給 CA;
- CA 驗證簽名,提取用戶信息,並加上其它信息(比方頒發者等信息),用 CA 的私鑰簽發數字證書;
- 說明:數字證書(如x.509)是將用戶(或其它實體)身份與公鑰綁定的信息載體。
一個合法的數字證書不僅要符合 X509 格式規范,還必須有 CA的簽名。用戶不僅有自己的數字證書,還必須有相應的私鑰。X509v3數字證書主要包括的內容有:證書版本號、證書序列號、簽名算法、頒發者信息、有效時間、持有者信息、公鑰信息、頒發者 ID、持有者 ID 和擴展項。
OCSP– 在線證書狀態協議(OCSP,Online Certificate StatusProtocol,rfc2560)用於實時表明證書狀態。
OCSP client通過查詢 OCSP服務來確定一個證書的狀態,能夠提供給使用者一個或多個數字證書的有效性資料,它建立一個可實時響應的機制。讓用戶能夠實時確認每一張證書的有效性,解決由CRL引發的安全問題。
。
OCSP 能夠通過 HTTP協議來實現。
rfc2560 定義了 OCSP client和服務端的消息格式。
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 中的私鑰是加密存放的。