SSL证书的多种格式

发布时间:2019/5/7 11:18:55 打印 字号:

SSL证书一般安装在服务器上,而主流的Web服务软件,通常都基于两种基础密码库:OpenSSL和Java

Tomcat、Weblogic、JBoss等系统是使用Java提供的密码库。通过Java的Keytool工具,生成Java Keystore(JKS)格式的证书文件。

而Apache、Nginx等,使用OpenSSL提供的密码库,生成PEM、KEY、CRT等格式的证书文件。

此外,IBM的产品,如Websphere、IBM Http Server(IHS)等,使用IBM产品自带的iKeyman工具,生成KDB格式的证书文件。微软Windows Server中的Internet Information Services(IIS),使用Windows自带的证书库生成PFX格式的证书文件。

由此可见SSL证书主要的文件类型和协议有: PEM、DER、PFX、JKS、KDB、CER、KEY、CSR、CRT、CRL、OCSP、SCEP等。


下面,Gworg就按目前主流的几个SSL证书格式为各位讲解:

.PEM,一般是文本格式,可保存证书,可保存私钥。

.DER .CER,文件是二进制格式,只保存证书,不保存私钥。

.PFX .P12,二进制格式,同时包含证书和私钥,一般有密码保护。

.CRT,可以是二进制格式,可以是文本格式,与 .DER 格式相同,不保存私钥。

.JKS,二进制格式,同时包含证书和私钥,一般有密码保护。


PEM – Privacy Enhanced Mail的缩写,以文本的方式进行存储。打开看文本格式,以”—–BEGIN…”开头, “—–END…”结尾,内容是BASE64编码. 查看PEM格式证书的信息:openssl x509 -in certificate.pem -text -noout Apache和*NIX服务器偏向于使用这种编码格式.


DER – Distinguished Encoding Rules的缩写,以二进制方式进行存储,文件结构无法直接预览,查看DER格式证书的信息:openssl x509 -in certificate.der -inform der -text -noout Java和Windows服务器偏向于使用这种编码格式.

CER – 还是certificate,还是证书,常见于Windows系统,同样的,可能是PEM编码,也可能是DER编码,大多数应该是DER编码.

PFX/P12 – predecessor of PKCS#12,对Unix服务器来说,一般CRT和KEY是分开存放在不同文件中的,但Windows的IIS则将它们存在一个PFX文件中,(因此这个文件包含了证书及私钥)这样会不会不安全?应该不会,PFX通常会有一个”提取密码”,你想把里面的东西读取出来的话,它就要求你提供提取密码。

CRT

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

JKS – 即Java Key Storage,这是Java的专利,跟OpenSSL关系不大,利用Java的一个叫”keytool”的工具,可以将PFX转为JKS,当然了,keytool也能直接生成JKS。

上述就是目前SSL证书主流的格式,下一篇,Gworg将为大家大家介绍关于SSL证书格式转换的方法