DER、CRT、CER、PEM證書格式介紹及轉(zhuǎn)換方法

本文來源于我搜到的一篇英文文章,因為感覺比較有用,所以翻譯了一下記下來。其英文原文地址: https://support.ssl.com/index.php?/Knowledgebase/Article/View/19/0/der-vs-crt-vs-cer-vs-pem-certificates-and-how-to-convert-them
譯文如下,有翻譯錯誤的地方,還望指正。

一、證書和編碼

X.509證書,其核心是根據(jù)RFC 5280編碼或數(shù)字簽名的數(shù)字文檔。

實際上,術(shù)語X.509證書通常指的是IETF的PKIX證書和X.509 v3證書標準的CRL 文件,即如RFC 5280(通常稱為PKIX for Public Key Infrastructure(X.509))中規(guī)定的。

二、X509文件擴展

我們首先要了解的是每種類型的文件擴展名。 很多人不清楚DER,PEM,CRT和CER結(jié)尾的文件是什么,更有甚者錯誤地說是可以互換的。 在某些情況下,某些可以互換,最佳做法是識別證書的編碼方式,然后正確標記。 正確標簽的證書將更容易操縱

三、編碼方式?jīng)Q定擴展名類型

1).DER 擴展名

.DER 擴展用于二進制DER編碼證書。
這些文件也可能承載CER或CRT擴展。 正確的說法是“我有一個DER編碼的證書”不是“我有一個DER證書”。

2).PEM 擴展名

.PEM 擴展用于不同類型的X.509v3文件,是以“ - BEGIN ...”前綴的ASCII(Base64)數(shù)據(jù)。

3)常見的擴展

3.1).CRT 擴展名

.CRT 擴展用于證書。 證書可以被編碼為二進制DER或ASCII PEM。 CER和CRT擴展幾乎是同義詞。 最常見的于Unix 或類Unix系統(tǒng)。

3.2).CER擴展名

CER 是.crt的替代形式(Microsoft Convention)您可以在微軟系統(tǒng)環(huán)境下將.crt轉(zhuǎn)換為.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),該命令顯示用于導入和/或查看證書內(nèi)容的對話框。

3.3).KEY 擴展名

.KEY擴展名用于公鑰和私鑰PKCS#8。 鍵可以被編碼為二進制DER或ASCII PEM。

四、常見的OpenSSL證書操作

證書操作有四種基本類型。查看,轉(zhuǎn)換,組合和提取。

1)查看證書

即使PEM編碼的證書是ASCII,它們是不可讀的。這里有一些命令可以讓你以可讀的形式輸出證書的內(nèi)容;

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)轉(zhuǎn)換證書格式

轉(zhuǎn)換可以將一種類型的編碼證書存入另一種。(即PEM到DER轉(zhuǎn)換)
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基礎(chǔ)設施組合到單個文件中是有利的。一個常見的例子是將私鑰和公鑰兩者結(jié)合到相同的證書中。
組合密鑰和鏈的最簡單的方法是將每個文件轉(zhuǎn)換為PEM編碼的證書,然后將每個文件的內(nèi)容簡單地復制到一個新文件中。這適用于組合文件以在Apache中使用的應用程序。

4)證書提取

一些證書將以組合形式出現(xiàn)。 一個文件可以包含以下任何一個:證書,私鑰,公鑰,簽名證書,證書頒發(fā)機構(gòu)(CA)和/或權(quán)限鏈。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容