一、證書和編碼
X.509證書,其核心是根據RFC 5280編碼或數字簽名的數字文檔。
實際上,術語X.509證書通常指的是IETF的PKIX證書和X.509 v3證書標准的CRL 文件,即如RFC 5280(通常稱為PKIX for Public Key Infrastructure(X.509))中規定的。
二、X509文件擴展
我們首先要了解的是每種類型的文件擴展名。 很多人不清楚DER,PEM,CRT和CER結尾的文件是什么,更有甚者錯誤地說是可以互換的。 在某些情況下,某些可以互換,最佳做法是識別證書的編碼方式,然后正確標記。 正確標簽的證書將更容易操縱
三、編碼--決定擴展名方式
1).DER 擴展名
.DER = DER擴展用於二進制DER編碼證書。
這些文件也可能承載CER或CRT擴展。 正確的說法是“我有一個DER編碼的證書”不是“我有一個DER證書”。
2).PEM 擴展名
.PEM = PEM擴展用於不同類型的X.509v3文件,是以“ - BEGIN ...”前綴的ASCII(Base64)數據。
3)常見的擴展
3.1).CRT 擴展名
.CRT = CRT擴展用於證書。 證書可以被編碼為二進制DER或ASCII PEM。 CER和CRT擴展幾乎是同義詞。 最常見的於Unix 或類Unix系統。
3.2).CER擴展名
CER = .crt的替代形式(Microsoft Convention)您可以在微軟系統環境下將.crt轉換為.cer(.both DER編碼的.cer,或base64 [PEM]編碼的.cer)。
.cer文件擴展名也被IE識別為 一個運行MS cryptoAPI命令的命令(特別是rundll32.exe cryptext.dll,CryptExtOpenCER),該命令顯示用於導入和/或查看證書內容的對話框。
3.3).KEY 擴展名
.KEY = KEY擴展名用於公鑰和私鑰PKCS#8。 鍵可以被編碼為二進制DER或ASCII PEM。
四、常見的OpenSSL證書操作
證書操作有四種基本類型。查看,轉換,組合和提取。
1)查看證書
即使PEM編碼的證書是ASCII,它們是不可讀的。這里有一些命令可以讓你以可讀的形式輸出證書的內容;
1.1)查看PEM編碼證書
openssl x509 -in cert.pem -text –noout
openssl x509 -in cert.cer -text –noout
openssl x509 -in cert.crt -text –noout
如果您遇到這個錯誤,這意味着您正在嘗試查看DER編碼的證書,並需要使用“查看DER編碼證書”中的命令。
12626:error:0906D06C:PEMroutines:PEM_read_bio:no start line:pem_lib.c:647:Expecting: TRUSTEDCERTIFICATE
unable to load certificate1.2)查看DER編碼證書
openssl x509 -in certificate.der -inform der -text -noout
如果您遇到以下錯誤,則表示您嘗試使用DER編碼證書的命令查看PEM編碼證書。在“查看PEM編碼的證書”中使用命令
unable to load certificate13978:error:0D0680A8:asn1 encodingroutines:ASN1_CHECK_TLEN:wrong tag:tasn_dec.c:1306:
13978:error:0D07803A:asn1 encodingroutines:ASN1_ITEM_EX_D2I:nested asn1 error:tasn_dec.c:380:Type=X509
2)轉換證書格式
轉換可以將一種類型的編碼證書存入另一種。(即PEM到DER轉換)
PEM到DER
openssl x509 -in cert.crt -outform der-out cert.der
DER到PEM
openssl x509 -in cert.crt -inform der -outform pem -out cert.pem
3)組合證書
在某些情況下,將多個X.509基礎設施組合到單個文件中是有利的。一個常見的例子是將私鑰和公鑰兩者結合到相同的證書中。
組合密鑰和鏈的最簡單的方法是將每個文件轉換為PEM編碼的證書,然后將每個文件的內容簡單地復制到一個新文件中。這適用於組合文件以在Apache中使用的應用程序。
4)證書提取
一些證書將以組合形式出現。 一個文件可以包含以下任何一個:證書,私鑰,公鑰,簽名證書,證書頒發機構(CA)和/或權限鏈。
五、原文鏈接
https://support.ssl.com/index.php?/Knowledgebase/Article/View/19/0/der-vs-crt-vs-cer-vs-pem-certificates-and-how-to-convert-them