证书标准

X.509 - 这是一种证书标准,主要定义了一个证书中应该包含哪些内容.其详情可以参考RFC5280,SSL使用的就是这种证书标准.
证书相关标准、格式 - 图1证书相关标准、格式 - 图2

编码格式

同样的X.509证书,可能有不同的编码格式,目前有以下两种编码格式.

PEM - Privacy Enhanced Mail,打开看文本格式,以”——-BEGIN…”开头, “——-END…”结尾,内容是BASE64编码.查看PEM格式证书的信息:openssl x509 -in certificate.pem -text -nooutApache和UNIX服务器偏向于使用这种编码格式.
DER - Distinguished Encoding Rules,打开看是二进制格式,不可读.查看DER格式证书的信息:openssl x509 -in certificate.der -inform der -text -nooutJava和Windows服务器偏向于使用这种编码格式.

相关的文件扩展名

这是比较误导人的地方,虽然我们已经知道有PEM和DER这两种编码格式,但文件扩展名并不一定就叫”PEM”或者”DER”,常见的扩展名除了PEM和DER还有以下这些,它们除了编码格式可能不同之外,内容也有差别,但大多数都能相互转换编码格式.

CRT - 证书文件,certificate的缩写 ,常见于UNIX系统,有可能是PEM编码,也有可能是DER编码,大多数应该是PEM编码
CER - 证书文件,certificate的缩写,常见于Windows系统,同样的,可能是PEM编码,也可能是DER编码,大多数应该是DER编码.
KEY - 通常用来存放一个公钥或者私钥,并非X.509证书,编码同样的,可能是PEM,也可能是DER.
如果是PEM格式的话,查看KEY的办法:openssl rsa -in mykey.key -text -noout如果是DER格式的话,同理应该这样了:openssl rsa -in mykey.key -text -noout -inform der
CSR - Certificate Signing Request,证书签名请求
p12 - 公钥加密技术12号标准(Public Key Cryptography Standards #12,PKCS#12)。
它是一种同时存储私钥、公钥和证书的标准。P12=证书文件+私钥(或公钥)

如何查看证书、key、证书签名请求的内容

查看KEY信息

  1. openssl rsa -noout -text -in myserver.key

查看CSR信息

  1. openssl req -noout -text -in myserver.csr

查看证书信息

  1. openssl x509 -noout -text -in ca.crt

验证证书,会提示self signed

  1. openssl verify selfsign.crt

因为myserver.crt 是ca.crt发布的,所以会验证成功

  1. openssl verify -CAfile ca.crt myserver.crt

参考

https://www.cnblogs.com/guogangj/p/4118605.html
https://www.jianshu.com/p/f5f93c89155e