一、数据编码标准:
ASN.1 (Abstract Syntax Notation One)
ASN.1是一种描述数字对象的方法和标准。ASN1是一种结构化的数字对象描述语言,它包括两部分:数据描述语言(ISO 8824)和数据编码规则(ISO 8825)。ASN.1的数据描述语言允许用户自定义基本的数据类型,并可以通过简单的数据类型组成更复杂的数据类型。
ASN.1 取得成功的一个主要原因是它与几个标准化编码规则相关,如基本编码规则(BER) -X.209 、规范编码规则(CER)、识别名编码规则(DER)、压缩编码规则(PER)和 XML编码规则(XER)。
二、证书编码格式:
1.DER
Distinguished Encoding Rules,可辨别编码规则。是BER的一个子集。
DER是二进制格式,不可读.
查看DER格式证书的信息:openssl x509 -in certificate.der -inform der -text -noout
Java和Windows服务器偏向于使用这种编码格式.
2.PEM
Privacy Enhanced Mail,是一种保密邮件的编码标准。
PEM是文本格式,以"-----BEGIN..."开头, "-----END..."结尾,内容是BASE64编码.
查看PEM格式证书的信息:openssl x509 -in certificate.pem -text -noout
Apache和*NIX服务器偏向于使用这种编码格式.
PEM对信息的编码过程基本如下:
- 信息转换为ASCII码或其他编码方式,比如采用DER编码。
- 使用对称加密算法加密经过编码的信息。
- 使用BASE64对加密码后的信息进行编码。
- 使用一些头定义对信息进行封装,主要包含了进行正确解码需要的信息
- 在这些信息的前面加上如下形式头标注信息
格式转换:
PEM转为DER openssl x509 -in cert.crt -outform der -out cert.der
DER转为PEM openssl x509 -in cert.crt -inform der -outform pem -out cert.pem