DER、CRT、CER、PEM格式的證書及轉換


一、證書和編碼

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)。

可參考:https://support.comodo.com/index.php?/Knowledgebase/Article/View/361/17/how-do-i-convert-crt-file-into-the-microsoft-cer-format

.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編碼證書”中的命令。
unable to load certificate

12626:error:0906D06C:PEMroutines:PEM_read_bio:no start line:pem_lib.c:647:Expecting: TRUSTEDCERTIFICATE

1.2)查看DER編碼證書

openssl x509 -in certificate.der -inform der -text -noout

如果您遇到以下錯誤,則表示您嘗試使用DER編碼證書的命令查看PEM編碼證書。在“查看PEM編碼的證書”中使用命令
unable to load certificate

13978: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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM