ssl-证书

ssl证书格式说明

crt /key /req /csr /pem /der

  • 带有私钥的证书 PKCS12(P12)

      包含了公钥和私钥的二进制格式的证书形式,以 pfx 作为证书文件后缀名。

  • 二进制编码的证书(DER)

      证书中没有私钥,DER 编码二进制格式的证书文件,以 .cer 作为证书文件后缀名。

  • Base64 编码的证书(PEM)

      证书中没有私钥,Base64 编码格式的证书文件,也是以 .cer 作为证书文件后缀名。

 

.crt 表示证书, .key 表示私钥, .req 表示请求文件,.csr 也表示请求文件,

.pem 表示 pem 格式,.der 表示 der 格式。

 .DER:用二进制DER编码的证书;

.PEM:用ASCLL(BASE64)编码的证书; 

.CER:存放公钥,没有私钥; 

.PFX:存放公钥和私钥

pem 后缀的证书都是base64编码;der   后缀的证书都是二进制格式;

crt    .cer     后缀的文件都是证书文件(编码方式不一定,有可能是.pem,也有可能是.der);

der 格式: 经过加密的二进制文件。

 

根据不同的服务器以及服务器的版本,我们需要用到不同的证书格式,就市面上主流的服务器来说,大概有以下格式:

  • .DER .CER,文件是二进制格式,只保存证书,不保存私钥。
  • .PEM,一般是文本格式,可保存证书,可保存私钥。
  • .CRT,可以是二进制格式,可以是文本格式,与 .DER 格式相同,不保存私钥。
  • .PFX .P12,二进制格式,同时包含证书和私钥,一般有密码保护。
  • .JKS,二进制格式,同时包含证书和私钥,一般有密码保护

文件拓展名你可以随便命名。只是为了理解需要而命名不同的拓展名。但文件中的信息是有格式的,和 exe,PE 格式一样, 证书有两种格式,pem 格式和 der 格式。

所有证书,私钥等都可以是 pem, 也可以是 der 格式,取决于应用需要。

 

pem 和 der 格式可以互转:

  • openssl x509 -in ca.crt -outform DER -out ca.der //pem -> der
  • openssl x509 -inform der -in ca.der -out ca.pem // der -> pem
  • gmssl x509 -inform pem -in user.pem -outform der -out user.cer

pem格式:经过加密的文本文件,一般有下面几种开头结尾:
-----BEGIN RSA PRIVATE KEY-----
-----END RSA PRIVATE KEY-----
or:
-----BEGIN CERTIFICATE REQUEST-----
-----END CERTIFICATE REQUEST-----
or:
----BEGIN CERTIFICATE-----
-----END CERTIFICATE-----

 

证书中含有 申请者公钥、申请者的组织信息和个人信息、签发机构 CA 的信息、有效时间、证书序列号等信息的明文,同时包含一个签名。

查看证书命令:

  • openssl x509 -noout -text -in baiducom.crt

 

DER

该格式是二进制文件内容,Java 和 Windows 服务器偏向于使用这种编码格式。

OpenSSL 查看:

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

转换为 PEM:

openssl x509 -in cert.crt -inform der -outform pem -out cert.pem

PEM

Privacy Enhanced Mail,一般为文本格式,以 -----BEGIN... 开头,以 -----END... 结尾。中间的内容是 BASE64 编码。这种格式可以保存证书和私钥,有时我们也把PEM 格式的私钥的后缀改为 .key 以区别证书与私钥。具体你可以看文件的内容。

这种格式常用于 Apache 和 Nginx 服务器。

OpenSSL 查看:

openssl x509 -in certificate.pem -text -noout

转换为 DER:

openssl x509 -in cert.crt -outform der -out cert.der

CRT

Certificate 的简称,有可能是 PEM 编码格式,也有可能是 DER 编码格式。如何查看请参考前两种格式。

 

PFX

Predecessor of PKCS#12,这种格式是二进制格式,且证书和私钥存在一个 PFX 文件中。一般用于 Windows 上的 IIS 服务器。改格式的文件一般会有一个密码用于保证私钥的安全。

OpenSSL 查看:

openssl pkcs12 -in for-iis.pfx

转换为 PEM:

openssl pkcs12 -in for-iis.pfx -out for-iis.pem -nodes

将server.crt和server.key合称为server.pfx

openssl pkcs12 -export -out server.pfx -inkey server.key -in server.crt

 

reference:
https://www.jianshu.com/p/bad8a99de24c
https://www.cnblogs.com/dinglin1/p/9279831.html
https://www.iteye.com/blog/iluoxuan-1736275
https://www.cnblogs.com/goOtter/p/10255676.html

posted @ 2020-03-26 20:04  ainingxiaoguai  阅读(338)  评论(0)    收藏  举报