概述
X.509標準規定了證書可以包含什麼信息,並說明了記錄信息的方法(數據格式)。除了簽名外,所有 X.509 證書還包含以下數據:
版本
識別用於該證書的 X.509 標準的版本,這可以影響證書中所能指定的信息。迄今為止,已定義的版本有三個。
序列號
發放證書的實體有責任為證書指定序列號,以使其區別於該實體發放的其它證書。此信息用途很多。例如,如果某一證書被撤消,其序列號將放到證書撤消清單 (CRL) 中。
簽名算法標識符
用於識別 CA 簽寫證書時所用的算法。
簽發人姓名
簽寫證書的實體的 X.500 名稱。它通常為一個 CA。 使用該證書意味著信任簽寫該證書的實體(注意:有些情況下(例如根或頂層 CA 證書),簽發人會簽寫自己的證書)。
有效期
每個證書均只能在一個有限的時間段內有效。該有效期以起始日期和時間及終止日期和時間表示,可以短至幾秒或長至一世紀。所選有效期取決於許多因素,例如用於簽寫證書的私鑰的使用頻率及願為證書支付的金錢等。它是在沒有危及相關私鑰的條件下,實體可以依賴公鑰值的預計時間。
主體名
證書可以識別其公鑰的實體名。此名稱使用 X.500 標準,因此在Internet中應是唯一的。它是實體的特徵名 (DN),例如,
CN=Java Duke,OU=Java Software Division,O=Sun Microsystems Inc,C=US
(這些指主體的通用名、組織單位、組織和國家)。
主體公鑰信息
這是被命名實體的公鑰,同時包括指定該密鑰所屬公鑰密碼系統的算法標識符及所有相關的密鑰參數。
X.509 1 版自 1988 年起有售,已得到廣泛使用,是最常用的版本。
X.509 2 版引入了主體和簽發人唯一標識符的概念,以解決主體和/或簽發人名稱在一段時間後可能重複使用的問題。大多數證書監視文檔都極力建議不要重複使用主體或簽發人名稱,而且建議證書不要使用唯一標識符。版本 2 證書尚未得到廣泛使用。
X.509 3 版是最新的版本(1996 年)。它支持擴展的概念,因此任何人均可定義擴展並將其納入證書中。現在常用的擴展包括:KeyUsage(僅限密鑰用於特殊目的,例如“只簽”)和 AlternativeNames(允許其它標識與該公鑰關聯,例如 DNS 名、電子郵件地址、IP 地址)。擴展可標記為“極重要”,以表示應選中該擴展並強制執行或使用。例如,如果某一證書將 KeyUsage 擴展標記為“極重要”,而且設定為“keyCertSign”,則在 SSL 通信期間該證書出現時將被拒絕,因為該證書擴展表示相關私鑰應只用於簽寫證書,而不應該用於 SSL。
證書中的所有數據均用兩個名為 ASN.1/DER 的相關標準進行編碼。抽象語法注釋 1 (Abstract Syntax Notation 1) 對數據進行描述。確定性編碼規則 (DER) 描述儲存和傳輸數據的唯一方式。既有人稱這一組合“強大而靈活”,也有人稱之為“含混而笨拙”。