安全证书(编码格式、证书标准)
文章目录
编码标准
ASN.1(Abstrcat Syntax Notation One)
是描述数据的表示、编码、传输、解码的灵活的记法。它提供了一套正式、无歧义和精确的规则以描述独立于特定计算机硬件的对象结构。
标准的ASN.1编码规则有基本编码规则(BER,Basic Encoding Rules)、规范编码规则(CER,Canonical Encoding Rules)、唯一编码规则(DER,Distinguished Encoding Rules)、压缩编码规则(PER,Packed Encoding Rules)和XML编码规则(XER,XML Encoding Rules)。
维基百科:ASN.1
编码格式
1.DER
DER为二机制格式,是BER的一个子集。
查看DER格式证书信息:
1
|
openssl x509 -in certificate.der -inform der -text -noout |
2.PEM
PEM对DER编码的证书再进行Base64编码的数据存放在”—–BEGIN CERTIFICATE—–“和”—–END CERTIFICATE—–“之中
查看PEM格式证书信息:
1
|
openssl x509 -in certificate.pem -text -noout |
格式转换
PEM转为DER
1
openssl x509 -in cert.crt -outform der -out cert.der
DER转为PEM
1
openssl x509 -in cert.crt -inform der -outform pem -out cert.pem
证书标准
X.509证书
X.509是密码学里公钥证书的格式标准。X.509证书已应用在包括TLS/SSL在内的众多网络协议里,同时它也用在很多非在线应用场景里,比如电子签名服务。X.509证书里含有公钥、身份信息(比如网络主机名,组织的名称或个体名称等)和签名信息(可以是证书签发机构CA的签名,也可以是自签名)。
维基百科 X.509证书
证书容器
PKCS#12
由PFX进化而来的用于交换公共的和私有的对象的标准格式
PKCS#7
是签名或加密数据的格式标准,官方称之为容器。由于证书是可验真的签名数据,所以可以用SignedData结构表述。 .P7C
文件是退化的SignedData结构,没有包括签名的数据。
证书文件扩展名
- .pem
DER
编码的证书再进行Base64
编码的数据存放在”—–BEGIN CERTIFICATE—–“和”—–END CERTIFICATE—–“之中
- .cer .crt .der
通常是DER
二进制格式的,但Base64编码后也很常见。
- .p12
PKCS#12
格式,包含证书的同时可能还有带密码保护的私钥
- .pfx
PFX,PKCS#12
之前的格式(通常用PKCS#12格式,比如那些由IIS产生的PFX文件)
- 生成pfx
-certfile CA(权威证书颁发机构)的根证书
1
openssl pkcs12 -export -in certificate.crt -inkey privateKey.key -out certificate.pfx -certfile CACert.crt
PFX转换为PEM编码(需要输入密码)
1
openssl pkcs12 -in for-iis.pfx -out for-iis.pem -nodes
- .key
存放一个公钥或者私钥的文件,非X.509证书。编码可能是PEM,也可能是DER。
查看方法
1 2 3 4 # pem openssl rsa -in mykey.key -text -noout #der openssl rsa -in mykey.key -text -noout -inform der
- .csr(Certificate Signing Request)
即证书签名请求,并不是证书,是向权威证书颁发机构获得签名证书的申请,核心内容是一个公钥(附带了一些别的信息),在生成这个申请的时候,同时也会生成一个私钥,私钥要自己保管。
查看方法
1
openssl req -noout -text -in my.csr如果是DER格式的话照旧加上-inform der
文章作者 binbin wen
上次更新 2019-03-13