添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

X.509 证书文件的不同后缀PEM DER CRT CER其实对应两种编码方案

  • Base64编码
  • ASN1.1 DER编码

1  PEM( “ P rivacy E nhanced M ail”)是最常用的X.509 证书文件后缀

PEM 文件是一个文本文件,采用了Base64 ASCII 编码;所以打开文件口看到(e.g. -----BEGIN CERTIFICATE----- and -----END CERTIFICATE----- ).

一个PEM文件可以包含公钥证书/私钥/或者能形成证书链的多个证书

-----BEGIN CERTIFICATE-----MIICADCCAaOgAwIBAgIGAXKoPs9DMAwGCCqBHM9VAYN1BQAwSzELMAkGA1UEBhMCQ04xDjAMBgNVBAoTBUdNU1NMMRAwDgYDVQQLEwdQS0kvU00yMRowGAYDVQQDExFN........省略

-----END CERTIFICATE---- -

PEM文件的后缀可以是: .crt , .pem , .cer , and .key

使用openSSL命令可以解码base64,显示可读的明文:

openssl x509 -in CERTIFICATE.pem -text -noout 

例子输出:

Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 1591960588099 (0x172a83ecf43)
        Signature Algorithm: 1.2.156.10197.1.501
        Issuer: C = CN, O = GMSSL, OU = PKI/SM2, CN = MiddleCA for Test
        Validity
            Not Before: Dec 31 16:00:00 2015 GMT
            Not After : Dec 30 16:00:00 2035 GMT
        Subject: C = CN, O = GMSSL, OU = PKI/SM2, CN = demo1.gmssl.cn
        Subject Public Key Info:
            Public Key Algorithm: id-ecPublicKey
                Public-Key: (256 bit)
                    04:de:8a:c0:d2:d5:91:6e:17:8c:9c:ef:02:92:94:
                    40:90:57:2f:f4:4e:a1:94:21:fb:50:19:98:81:07:
                    14:19:c1:0d:7b:5c:05:10:44:8c:d6:ca:ad:c6:73:
                    44:18:2d:14:99:2f:96:70:1f:e1:c2:32:b8:4b:2c:
                    50:65:88:44:64
                ASN1 OID: SM2
        X509v3 extensions:
            X509v3 Authority Key Identifier: 
                keyid:F9:7F:55:B4:27:94:33:62:A6:56:CA:6F:CC:5D:1A:FF
            X509v3 Subject Alternative Name: 
                DNS:demo1.gmssl.cn
            X509v3 Subject Key Identifier: 
                1F:E8:22:1B:5C:7A:45:94:CE:F4:B2:88:72:2A:10:E3
            X509v3 Basic Constraints: 
                CA:FALSE
            X509v3 Key Usage: critical
                Key Encipherment, Data Encipherment, Key Agreement
    Signature Algorithm: 1.2.156.10197.1.501
         30:46:02:21:00:b5:ee:4b:37:56:f9:01:c9:f4:84:91:04:17:
         1d:d5:51:f1:76:01:a6:a8:8c:14:80:3d:f2:c2:ea:7f:ed:fe:
         38:02:21:00:8a:69:ed:84:2c:6c:42:4d:8d:5a:fc:b8:cd:c4:
         7e:8e:80:31:60:af:7b:a7:03:48:39:4e:b1:d5:43:72:a0:fb

也可以将PEM文件转换为DER文件:

openssl x509 -outform der -in CERTIFICATE.pem -out CERTIFICATE.der

也可以将PEM文件转为 PKCS#7文件,后缀为p7b,

  • PKCS#7文件是含有多个证书,形成证书链。
  • -certfile MORE.pem用来指定链接的 ntermediate 或 root 证书;
  • KCS#7文件不含私钥。
  • PKCS#7文件通常用于Windows and Java server contexts
openssl crl2pkcs7 -nocrl -certfile CERTIFICATE.pem -certfile MORE.pem -out CERTIFICATE.p7b

也可以将PEM文件转换为PKCS#12文件

  • PKCS#12文件是含有多个证书,形成证书链
  • PKCS#12文件含有私钥
  • 后缀为.p12或者 pfx
  • -inkey PRIVATEKEY.key 用来增加私钥
  • -certfile MORE.pem用来指定链接的 ntermediate 或 root 证书;
  • 运行命令过程中会提示设置password来保护PKCS#12文件
openssl pkcs12 -export -out CERTIFICATE.pfx -inkey PRIVATEKEY.key -in CERTIFICATE.crt -certfile MORE.crt

二 DER(Distinguished Encoding Rules)

DER 文件是公钥证书或者私钥通过DER编码以后生成的二进制文件;

  • 常用于Java contexts
  • DER文件通常后缀为der或cer
3082 07fd 3082 05e5 a003 0201 0202 1068 1604 dff3 34f1 71d8 0a73 5599 c141 7230 0d06 092a 8648 86f7 0d01 010b 0500 3072 310b 3009 0603 5504 0613 0255 5331 0e30 0c06 0355 0408 0c05 5465 7861 7331 1030 0e06 0355 0407 0c07 486f 7573 746f 6e31 1130 0f06 0355 040a 0c08 5353 4c20 436f 7270 312e 302c 0603 5504 030c 2553 534c 2e63 6f6d 2045 5620 5353 4c20 496e 7465 726d 6564 6961 7465 2043 4120 5253 4120

可以通过openssl命令来显示可读格式:

openssl x509 -inform der -in CERTIFICATE.der -text -noout

也可以将DER文件转换为PEM

openssl x509 -inform der -in CERTIFICATE.der -out CERTIFICATE.pem

其实证书或者私钥,都是先根据规范给ASN.1描述,然后进行DER编码,生成二进制文件(DER),然后对二进制文件再Base64编码,即可以生成ASCII码文件(PEM)。

所以DER到PEM转换,其实就是Base64编码,反之,则是Base64解码。

CRT , CER ,KEY这几种 证书 和密钥文件,它们都有自己的schema,在存储为物理文件时,既可以是 PEM 格式,也可以 DER 格式。 CER :一般用于windows的 证书 文件格式 CRT :一般用于Linux的 证书 ,包含公钥和主体信息 KEY:一般用于密钥,特别是 私钥 打个比方:CE
生成系统签名所需的文件,当然这是官方的,如果系统是定制的话这2个文件就不适用了,需要自己找系统提供商来要这2个文件。使用方法: 将三个文件文件放在同一个目录下,执行如下命令,会生成platform.keystore文件: sh keytool-importkeypair -k ./platform.keystore -p android -pk8 platform.pk8 - cer t platform. x509 . pem -alias platform 具体也可以查看 https://blog.csdn.net/qq_20523943/article/details/109011484
der Tmp, err := ioutil.ReadFile("123. cer ") if err != nil { fmt.Println("Read file failed") return //调用 x509 的接口 cer tBodyTmp, err := x509 .Parse Cer tificate( der Tmp) if err != nil { fmt.Println(err) return 解析 PEM 证书 二进制格式。 der 类型的不用在编码解码,直接就是二进制的数据可以直接使用 2. PEM 格式 PEM 格式数据要根据base64编码解码后,得到的数据需要进行增加或裁剪特殊字符-、\n、\r、begin信息、end信息等。 下面一个例子就是 PEM 格式的 私钥 文件, 以-----BEGIN PRIVATE KEY----开头, 以-----END PRIVATE KEY-----结尾。 -----BEGIN PRIV server { listen 443 ssl http2 default_server; listen [::]:443 ssl http2 default_server; server_name 192.168.3.91; root /usr/share/nginx/html; ssl_ cer tificate "
文章目录电子认证公钥基础设施(PKI)安全认证机构CA 证书 SSLTSLCSR是什么SSL 证书 格式SSL 证书 文件OpenSSL 证书 操作1、查看2、转换3、组合4、提取RSA参考资料 电子认证就是通过一个或几个值得信赖的第三方将被认定的签名或签名者的姓名与特定的公共密码联系起来。 公钥基础设施(PKI) Public Key Infrastructure(PKI) 可信赖的机构就是认证机构,按不同的层次构建起来,形成公钥基础设施。 在公共基础设施的构成中,认证机构(CA)及相关的 证书 管理设施居于核心地
在进行 Android 应用开发的时候,如果开发的是系统应用,那么就需要有系统签名才能正常运行,而系统应用一般是放到系统代码库中跟随系统一起编译。如果想要用 Android Studio 单独对某个开发的应用进行签名的话,有两种方式可以选择。一种方法是编译完成后使用 signApk.jar 、platform.pk8 和 platform. x509 . pem 进行配合签名。第二种方法是把系统的 platform.pk8 和 platform. x509 . pem 转换成为我们可以直接使用的 keystore 文件,在编译时自动签名。 获取系统可签名的keystore,获取到安卓系统签名
我们一般说的 证书 就是数字 证书 :数字 证书 是指在互联网通讯中标志通讯各方身份信息的一个数字认证,人们可以在网上用它来识别对方的身份 一般有两种:PFX 证书 CER 证书 PFX 证书 : 由Public Key Cryptography Standards #12,PKCS#12标准定义,包含了公钥和 私钥 的二进制格式的 证书 形式,以pfx作为 证书 文件后缀名。 一般RSA 证书 比较多,现在国内的RSA根证到期,有些企业已经不用了。 SM2 证书 : 1.二进制编码的 证书 证书 中没有 私钥 DER 编码二进制格式的 证书 文件,以ce
X.509 证书 中主要含有公钥、身份信息、签名信息和有效性信息等信息。这些信息用于构建一个验证公钥的体系,用来保证客户端得到的公钥正是它期望的公钥。 公钥: 非对称密码中的公钥。公钥 证书 的目的就是为了在互联网上分发公钥。 身份信息: 公钥对应的 私钥 持有者的信息,域名以及用途等。 签名信息: 对公钥进行签名的信息,提供公钥...
keytool platform. x509 . pem 文件是一个 X.509 格式的 证书 文件。在计算机安全领域,X.509 是一种通用的 证书 标准,用于在公钥加密体系中对实体进行身份验证。 keytool 是一个Java密钥和 证书 管理工具,用于管理Java密钥库(JKS)中的密钥、 证书 和可信任的 证书 颁发机构(CA)。 .platform. x509 . pem 文件是基于 X.509 标准的 证书 文件的命名方式,并且带有.platform前缀,可能表示其是与某个特定平台相关的 证书 。 使用keytool命令可通过以下方式操作 platform. x509 . pem 文件: 1. 导入 证书 :可以使用 keytool 命令导入指定的 证书 到 Java 密钥库。例如,可以使用以下命令将 platform. x509 . pem 导入到密钥库中: `keytool -import cer t -alias my cer t -file platform. x509 . pem -keystore mykeystore.jks` 2. 查看 证书 :可以使用 keytool 查看 证书 的详细信息。例如,可以使用以下命令查看 platform. x509 . pem 证书 的详细信息: `keytool -print cer t -file platform. x509 . pem ` 3. 导出 证书 :可以使用 keytool 将密钥库中的 证书 导出为独立的 证书 文件。例如,可以使用以下命令将密钥库中名为 my cer t 的 证书 导出为 platform. x509 . pem 文件: `keytool -export cer t -alias my cer t -file platform. x509 . pem -keystore mykeystore.jks` 需要注意的是,以上命令仅为示例,具体的命令参数和使用方法可能会因实际情况而异。在使用 keytool 时,应注意保证密钥库和 证书 文件的安全,并且遵循最佳实践来管理密钥和 证书