根据服务器以及服务器的版本,在安装 SSL 的时候会碰到不同的证书格式,目前主流的SSL证书格式大概有以下几种:
- .DER .CER,二进制格式,只保存证书,不保存私钥。
- .PEM,一般是文本格式,可保存证书,可保存私钥。
- .CRT,二进制格式/文本格式,与 .DER 格式相同,不保存私钥。
- .PFX .P12,二进制格式,同时包含证书和私钥,一般有密码保护。
- .JKS,二进制格式,同时包含证书和私钥,一般有密码保护。
DER
二进制文件内容,常用于Windows 、JAVA服务器
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 编码,常用于 Apache 和 Nginx 服务器。。
有时我们也把PEM 格式的私钥的后缀改为 .key 以区别证书与私钥。具体可以看文件的内容。
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
JKS
Java Key Storage,很明显,这是 JAVA 的专属格式一般用于 Tomcat 服务器。,利用 JAVA 的keytool工具可进行转换。
也可通过页面进行格式转换:https://myssl.com/cert_convert.html
扩展阅读:
[…] SSL证书格式科普,PEM、JKS、CER等证书 […]
[…] SSL 证书具体说明和转换方法,可参考SSL证书格式科普,PEM、JKS、CER等证书 […]