2011-03-02 160 views
2

我正在研究X509證書和keytool,我對以下內容感到困惑:
證書可以以cer(規範編碼規則)格式以及DER存儲嗎?
我在keytool上查看SUN的各種教程,在某些情況下,他們似乎導入以「.cer」結尾的證書或導出擴展名爲「.cer」的證書。
例如使用X509證書和keytool證書編碼

keytool -importcert -alias abc -file ABCCA.cer OR 
keytool -exportcert -alias mykey -file MJ.cer 

這是否意味着cer編碼?因爲最初我有印象,如果你在keytool上做出口,默認是der。
或者可以互換嗎?

感謝

+0

有沒有這樣的事情CER編碼證書。 「.cer」僅僅是一個常見的文件擴展名,但是用於證書的文件擴展名無效。我相信Microsoft在默認情況下使用DER編碼的X509證書,因爲Microsoft必須始終以不同的方式執行操作,即使它們執行的操作相同。 – 2011-03-02 23:54:48

+0

@GregS:那麼說證書只能用DER或PEM格式是正確的嗎?所以實際的文件擴展名是不相關的? – Cratylus 2011-03-03 07:05:31

+0

DER是適用於ASN.1描述的任何數據的編碼規則,而不僅僅是證書。 PEM也是一種編碼方法,它涉及base-64對DER內容進行編碼並在結果周圍標註頁眉和頁腳線。 'keytool'支持DER編碼的X509證書以及X509證書的DER編碼的PEM編碼。此外,對於證書鏈,keytool支持DER編碼的PKCS#7對象以及這些對象的PEM編碼。文件擴展名始終不相關。 – 2011-03-03 12:47:16

回答

2

默認情況下,使用DER keytool的出口( 「特異編碼規則」),對X509證書常見的二進制編碼。

這只是個不幸的巧合CER是另一個ASN.1編碼的名稱,以及作爲「證書」的前三個字母...

+0

那麼說證書只能是DER或PEM格式是正確的嗎?所以實際的文件擴展名是不相關的? – Cratylus 2011-03-03 07:04:28

+0

是的,它出口DER,除非你使用'-rfc'選項,在這種情況下,它使用PEM(這真的只是base64編碼的DER與頁眉和頁腳)。爲了導入,它支持DER,PEM和PKCS#7;文件擴展名無關緊要。 – SimonJ 2011-03-03 08:00:21

+0

因此,如果文件擴展名不相關,如果用戶將一個java程序中的文件路徑提供給DER,PEM,P12或PKCS7格式的文件,該程序如何處理?我的意思是我感興趣在進行任何處理之前知道是否需要知道文件的編碼。例如,檢測提供的文件是否在DER中,以便Base64對它進行編碼,例如,保存爲一個文本文件或將其存儲在數據庫等。如果它已經在PEM只是存儲它。不要做任何其他事情,即編碼它 – Cratylus 2011-03-03 16:17:12