TLS/SSL证书可以有多种格式和扩展名-pem、cer、der或pfx。我们将为您提供建议,帮助您理解这些扩展名,了解如何使用它们,以及如何将证书格式更改为您需要的格式。
证书格式之间的差异
保存为.p7b、.pfx、.p12、.pem、.der、.crt或.cer的证书有什么区别?
请记住,TLS证书文件扩展名无关紧要。TLS证书可以以纯文本形式(最常见的是Linux、Apache、Unix和其他服务器)或二进制形式(Java、MicrosoftServer)安全保存。
纯文本证书以Base64编码保存。您可以使用记事本(Windows的一部分)打开该文件,然后可以看到构成证书的文本(位于BEGIN和ENDCERTIFICATE之间)。
二进制文件无法在文本编辑器中打开(所谓的“什么都看不到”)。
PEM格式
这是存储证书最常用的格式。大多数服务器(例如Apache或nginx)将私钥和证书放在两个单独的测试文件中。我们通常将PEM称为“文本格式”,因为它采用Base64编码。Base64只是一种编码方法(数据以ASCII字母表示),而不是加密。您可以使用许多工具对其进行解码。
PEM是使用ASCII字母的Base64编码文件。
对于这些证书,最常用的扩展名是.cer、.crt、.pem或.key(通常用于私钥)。
此格式使用Apache和Unix/Linux服务器上的所有服务器。
格式
DER格式是一种二进制证书格式。它不是文本。您无法像文本一样打开阅读或复制它。这是它与Base64的主要区别。
所有证书类型和私钥都可以以DER格式存储。
DER中的证书通常具有扩展名.cer或.der。
DER格式用于Java平台。
P7B/PKCS#7格式
PKCS#7或P7B扩展表示存储在.p7b或.p7c文件(容器)中的一个或多个Base64ASCII证书。
P7B文件包含证书及其链(中间证书),但不包含私钥。
P7B文件最常用于JavaTomcat平台。
PFX/P12/PKCS#12格式
PKCS#12或PFX/P12格式是一种二进制格式,用于存储带有私钥的证书(包括中间文件)。证书和私钥在PFX文件(容器)中受密码保护。
最常用的扩展名是.pfx和.p12。
PKCS#12(PFX)经常在Windows机器上使用,用于导入和导出证书和私钥。
存储在PFX中的代码签名证书也经常用于使用MicrosoftAuthenticode进行签名。