2011-03-02 68 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