證書和編碼
X.509證書的核心是根據(jù)RFC 5280進行編碼或數(shù)字簽名的數(shù)字文檔。
實際上,術(shù)語X.509證書通常是指RFC 5280中規(guī)定的IETF的X.509 v3證書標準的PKIX證書和CRL配置文件,通常被稱為公鑰基礎(chǔ)結(jié)構(gòu)(X.509)。
X509文件擴展
我們首先要了解的是每種文件擴展名是什么。關(guān)于DER,PEM,CRT和CER是什么,存在很多困惑,并且許多人錯誤地表示它們都是可互換的。
盡管在某些情況下可以互換某些最佳做法,但最好的做法是確定證書的編碼方式,然后正確地對其進行標記,正確標記的證書將更容易操作。
編碼(也用作擴展名)
- .DER = DER擴展名用于二進制DER編碼的證書,這些文件也可能帶有CER或CRT擴展名,正確的英語用法是“我有DER編碼證書”而不是“我有DER證書”。
- .PEM = PEM擴展名用于不同類型的X.509v3文件,這些文件包含以 “--BEGIN…” 行為前綴的ASCII(Base64)包裝數(shù)據(jù)。
通用擴展
- .CRT = CRT擴展名用于證書。證書可以編碼為二進制DER或ASCII PEM,CER和CRT擴展幾乎是同義詞, * nix系統(tǒng)中最常見的。
- .CER = .crt的替代形式(Microsoft約定)您可以使用MS將 .crt 轉(zhuǎn)換為 .cer(.DER編碼的.cer或base64 [PEM]編碼的.cer). IE也將 .cer 文件擴展名識別為命令運行MS cryptoAPI命令(特別是rundll32.exe cryptext.dll,CryptExtOpenCER),該對話框顯示用于導入或查看證書內(nèi)容的對話框。
- .KEY = KEY擴展名同時用于公共和私有PKCS#8密鑰,密鑰可以編碼為二進制DER或ASCII PEM。
CRT和CER唯一可以安全互換的時間是編碼類型可以相同時。 (即PEM編碼的CRT = PEM編碼的CER)
常見的OpenSSL證書操作
證書操作有四種基本類型。查看,轉(zhuǎn)換,組合和導出
1. 證書查看
即使PEM編碼的證書是ASCII,也不是人類可讀的證書。以下是一些命令,可讓您以易于閱讀的形式輸出證書的內(nèi)容。
查看PEM編碼的證書 使用具有證書擴展名的命令,將cert.xxx替換為證書名稱
- 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:PEM routines:PEM_read_bio:no start line:pem_lib.c:647:Expecting: TRUSTED CERTIFICATE
查看DER編碼的證書
- openssl x509 -in certificate.der -inform der -text -noout
如果收到以下錯誤,則表示您正在嘗試使用用于DER編碼證書的命令查看PEM編碼證書。使用“上面的查看PEM編碼的證書”中的命令
unable to load certificate
13978:error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag:tasn_dec.c:1306:
13978:error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error:tasn_dec.c:380:Type=X509
2. 證書轉(zhuǎn)換
PEM to DER
- openssl x509 -in cert.crt -outform der -out cert.der
DER to PEM
- openssl x509 -in cert.crt -inform der -outform pem -out cert.pem
3. 證書組合
在某些情況下,將多個X.509基礎(chǔ)結(jié)構(gòu)組合到一個文件中是有利的。一個常見的示例是將私鑰和公鑰都組合到同一證書中。
組合證書密鑰和鏈的最簡單方法是將每個密鑰轉(zhuǎn)換為PEM編碼的證書,然后將每個文件的內(nèi)容簡單地復制到新文件中。這適合于組合文件以在Apache的應用程序中使用
4. 證書導出
一些證書將以組合形式出現(xiàn)。其中一個文件可以包含以下任意一項:證書,私鑰,公鑰,簽名證書,證書頒發(fā)機構(gòu)(CA)或頒發(fā)機構(gòu)鏈。
[轉(zhuǎn)載]