证书标准
X.509 - 这是一种证书标准,主要定义了一个证书中应该包含哪些内容.其详情可以参考RFC5280,SSL使用的就是这种证书标准.
编码格式
同样的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信息
openssl rsa -noout -text -in myserver.key
查看CSR信息
openssl req -noout -text -in myserver.csr
查看证书信息
openssl x509 -noout -text -in ca.crt
验证证书,会提示self signed
openssl verify selfsign.crt
因为myserver.crt 是ca.crt发布的,所以会验证成功
openssl verify -CAfile ca.crt myserver.crt
参考
https://www.cnblogs.com/guogangj/p/4118605.html
https://www.jianshu.com/p/f5f93c89155e