This question already has an answer here:
What are the differences between .pem, .cer and .der?

(1个答案)


4年前关闭。




在密码学中,X.509和pem有什么区别?

X.509格式可以包含私钥吗?私钥可以采用pem格式吗?

最佳答案

X.509是一系列标准,而PEM只是文件中的X.509对象表示形式(编码)。从字面上看,任何数据都可以PEM格式表示。可以转换为字节数组的任何内容(由于RAM是一个非常大的字节数组,因此可以转换为任何东西)都可以PEM格式表示。

所有X.509对象都是可传输的,并通过使用抽象语法表示法一(ASN.1)作为字节数组来表示。字节数组在网络上传输时很棒,但在某个地方存储时并不总是有用。另一件事是,如果不进行全面的内容分析,就无法轻松确定X.509对象类型。

PEM 代表“隐私增强邮件”,在RFC1421中定义。尽管PEM是出于一些不同的目的而开发的,但该标准定义了PEM表示形式,尤其是在仅需要用可打印字符表示不可打印字符的情况下。在加密中,PEM仅与X.509对象表示相关联。此外,PEM还提供其他数据来标识嵌入式对象。

X.509对象的ASN.1形式是一个字节数组,例如(代表字节的八位字节系列):

3a 20 63 65 72 74 6c 69  62 5c 6c 64 61 70 2e 63
70 70 28 32 31 33 31 29  3a 20 6c 64 61 70 65 72

由于十六进制对表示二进制数据无用,因为它需要的空间是原始数据的两倍,因此使用了更有效的Base64编码。特殊的页眉和页脚用于表示嵌入式对象类型:

X.509证书
-----BEGIN CERTIFICATE-----
MIIEITCCA+CgAwIBAgIUKMmxmDbjbHqt+Yzwj5lflBxuQwEwCQYHKoZIzjgEAzAjMSEwHwYDVQQD
ExhUb2tlbiBTaWduaW5nIFB1YmxpYyBLZXkwHhcNMTIxMTE2MTgzODMwWhcNMTIxMTIzMTgzODMw
WjAtMSswKQYDVQQDHiIAYgBiADEANAAxADkAYQAyAGMAZgBjADEAZQAwADAAOAAAMIGfMA0GCSqG
<...>
-----END CERTIFICATE-----

X.509证书吊销列表
-----BEGIN X509 CRL-----
MIIDBjCCAm8CAQAwcTERMA8GA1UEAxMIcXV1eC5jb20xDzANBgNVBAsTBkJyYWlu
czEWMBQGA1UEChMNRGV2ZWxvcE1lbnRvcjERMA8GA1UEBxMIVG9ycmFuY2UxEzAR
BgNVBAgTCkNhbGlmb3JuaWExCzAJBgNVBAYTAlVTMIGfMA0GCSqGSIb3DQEBAQUA
<...>
-----END X509 CRL-----

X.509证书申请
-----BEGIN NEW CERTIFICATE REQUEST-----
MIIDBjCCAm8CAQAwcTERMA8GA1UEAxMIcXV1eC5jb20xDzANBgNVBAsTBkJyYWlu
czEWMBQGA1UEChMNRGV2ZWxvcE1lbnRvcjERMA8GA1UEBxMIVG9ycmFuY2UxEzAR
BgNVBAgTCkNhbGlmb3JuaWExCzAJBgNVBAYTAlVTMIGfMA0GCSqGSIb3DQEBAQUA
<...>
-----END NEW CERTIFICATE REQUEST-----

PKCS#1私钥
-----BEGIN RSA PRIVATE KEY-----
MIIDBjCCAm8CAQAwcTERMA8GA1UEAxMIcXV1eC5jb20xDzANBgNVBAsTBkJyYWlu
czEWMBQGA1UEChMNRGV2ZWxvcE1lbnRvcjERMA8GA1UEBxMIVG9ycmFuY2UxEzAR
BgNVBAgTCkNhbGlmb3JuaWExCzAJBgNVBAYTAlVTMIGfMA0GCSqGSIb3DQEBAQUA
<...>
-----END RSA PRIVATE KEY-----

PKCS#8私钥
-----BEGIN PRIVATE KEY-----
MIIDBjCCAm8CAQAwcTERMA8GA1UEAxMIcXV1eC5jb20xDzANBgNVBAsTBkJyYWlu
czEWMBQGA1UEChMNRGV2ZWxvcE1lbnRvcjERMA8GA1UEBxMIVG9ycmFuY2UxEzAR
BgNVBAgTCkNhbGlmb3JuaWExCzAJBgNVBAYTAlVTMIGfMA0GCSqGSIb3DQEBAQUA
<...>
-----END PRIVATE KEY-----

等等。

10-06 03:48