一直對電子證書的文件後綴比較頭大,搞不清這些後綴的關係,終於在網上搜到一個比較簡明的文章,試着翻譯一下:)
證書與編碼
本至上,X.509證書是一個數字文檔,這個文檔根據RFC 5280來編碼並/或簽發。
實際上,“X.509證書”經常被用來指代IETF的PKIX(Public Key Infrastructure)證書和X.509 v3 證書標準中的CRL(Certificate Revocation List)。
X509 文件擴展名
首先我們要理解文件的擴展名代表什麼。DER、PEM、CRT和CER這些擴展名經常令人困惑。很多人錯誤地認爲這些擴展名可以互相代替。儘管的確有時候有些擴展名是可以互換的,但是最好你能確定證書是如何編碼的,進而正確地標識它們。正確地標識證書有助於證書的管理。
編碼 (也用於擴展名)
- .DER = 擴展名DER用於二進制DER編碼的證書。這些證書也可以用CER或者CRT作爲擴展名。比較合適的說法是“我有一個DER編碼的證書”,而不是“我有一個DER證書”。
- .PEM = 擴展名PEM用於ASCII(Base64)編碼的各種X.509 v3 證書。文件開始由一行"—– BEGIN …“開始。
常用的擴展名
- .CRT = 擴展名CRT用於證書。證書可以是DER編碼,也可以是PEM編碼。擴展名CER和CRT幾乎是同義詞。這種情況在各種unix/linux系統中很常見。
- CER = CRT證書的微軟型式。可以用微軟的工具把CRT文件轉換爲CER文件(CRT和CER必須是相同編碼的,DER或者PEM)。擴展名爲CER的文件可以被IE識別並作爲命令調用微軟的cryptoAPI(具體點就是rudll32.exe cryptext.dll, CyrptExtOpenCER),進而彈出一個對話框來導入並/或查看證書內容。
- .KEY = 擴展名KEY用於PCSK#8的公鑰和私鑰。這些公鑰和私鑰可以是DER編碼或者PEM編碼。
CRT文件和CER文件只有在使用相同編碼的時候纔可以安全地相互替代。
後面是一些openssl的常用操作,就省略了吧:)