openssl 證書概念介紹
一、證書申請
生成 X509 數字證書前,一般先由用戶提交證書申請文件,然后由 CA 來簽發證書。
大致過程如下:
1)
用戶生成自己的公私鑰對;
2)
構造自己的證書申請文件,符合 PKCS#10 標準。該文件主要包括了用戶信息、公鑰以及一些可選的屬性信息,并用自己的私鑰給該內容簽名;
3)
用戶將證書申請文件提交給 CA;
4)
CA 驗證簽名,提取用戶信息,并加上其他信息(比如頒發者等信息),用 CA 的私鑰簽發數字證書;
X509 證書申請的格式標準為 pkcs#10 和 rfc2314。
查看證書請求文件的內容
openssl req -in cert.req -text
二、X509 數字證書
數字證書是將用戶(或其他實體)身份與公鑰綁定的信息載體。一個合法的數字證書不僅要符合 X509 格式規范,還必須有 CA 的簽名。用戶不僅有自己的數字證書,還必須有對應的私鑰。
X509v3 數字證書主要包含的內容有[1]:證書版本、證書序列號、簽名算法、頒發者信息、有效時間、持有者信息、公鑰信息、頒發者 ID、持有者 ID 和擴展項。
三、證書驗證項
數字證書驗證中,主要考察的項有:
i. 有效期,看證書是否已經失效;
ii. 簽名,用頒發者的公鑰來驗證簽名;
iii. 證書用途;
iv. 名字比較,證書中的頒發者信息應與頒發者證書的持有者信息一致;
v. 擴展項約束;
四、PEM概述
Openssl 使用 PEM(Privacy Enhanced Mail)格式來存放各種信息,它是 openssl 默認采
用的信息存放方式。Openssl 中的 PEM 文件一般包含如下信息:
1)內容類型表明本文件存放的是什么信息內容,它的形式為“-------BEGIN XXXX ------”,與結尾的“------END XXXX------”對應。
2) 頭信息表明數據是如果被處理后存放,openssl 中用的最多的是加密信息,比如加密算法以及初始化向量 iv。
3) 信息體為 BASE64 編碼的數據。
五、OCSP概述
在線證書狀態協議(OCSP,Online Certificate Status Protocol,rfc2560)用于實時表明證書狀態。OCSP 客戶端通過查詢 OCSP 服務來確定一個證書的狀態。OCSP 可以通過 HTTP協議來實現。rfc2560 定義了 OCSP 客戶端和服務端的消息格式
六、CRL
證書撤銷列表(Certificate Revocation List,簡稱 CRL),是一種包含撤銷的證書列表的簽名數據結構。CRL 是證書撤銷狀態的公布形式,CRL 就像信用卡的黑名單,用于公布某些數字證書不再有效。
CRL 是一種離線的證書狀態信息。它以一定的周期進行更新。CRL 可以分為完全 CRL和增量 CRL。在完全 CRL 中包含了所有的被撤銷證書信息,增量 CRL 由一系列的 CRL 來表明被撤銷的證書信息,它每次發布的 CRL 是對前面發布 CRL 的增量擴充。
基本的 CRL 信息有:被撤銷證書序列號、撤銷時間、撤銷原因、簽名者以及 CRL 簽名等信息。
基于 CRL 的驗證是一種不嚴格的證書認證。CRL 能證明在 CRL 中被撤銷的證書是無效的。但是,它不能給出不在 CRL 中的證書的狀態。如果執行嚴格的認證,需要采用在線方式進行認證,即 OCSP 認證。
七、PKCS7
加密消息語法(pkcs7),是各種消息存放的格式標準。這些消息包括:數據、簽名數據、數字信封、簽名數字信封、摘要數據和加密數據。
八、PKCS12
pkcs12 (個人數字證書標準)用于存放用戶證書、crl、用戶私鑰以及證書鏈。pkcs12 中的私鑰是加密存放的。

浙公網安備 33010602011771號