SSL 证书格式和证书文件扩展名:完整指南

要了解 SSL 证书是什么以及它是如何工作的,其实很容易。 但说到在服务器上安装,有时你可能会觉得这是一门火箭科学。

有如此多的SSL 证书格式与特定的服务器要求挂钩,你更有可能感到困惑和沮丧,而不是从一开始就正确配置证书。 但这种情况即将改变。

在本综合指南中,我们将剖析每种SSL 证书格式证书文件扩展名,并向你展示两种转换不同文件类型的方法。


目录

  1. 证书文件格式 – 基础知识
  2. SSL 证书格式和文件扩展名
  3. SSL 格式转换

证书文件格式 – 基础知识

让我们从基础知识开始。 所有 SSL 证书都是 x.509 证书。 这是公钥证书的标准格式,用一种名为 “抽象语法符号一 “的正式语言表达。 关于 X.509 的结构,我们不再赘述;您可以在维基网站上阅读相关信息。 我们在此讨论 SSL 证书格式,如 DER、PEM、PKCS#7 和 PKCS#12。

区分它们的简单方法是看它们的编码。

PEMPKCS#7使用 Base ASCII(美国信息交换标准码)编码。 对于包含文本的文件来说,这是一种流行的标准。

DERPKCS#12使用二进制编码,这是一种仅由 0 和 1 组成的二进制数字系统。

由于格式和编码不同,SSL 证书有许多文件扩展名。


SSL 证书格式和文件扩展名

让我们仔细研究一下每种格式及其 SSL 证书文件扩展名。 您将发现每个缩写背后的含义,以及什么系统最常用这个缩写。

DER 格式

DERDistinguished Encoding Rules 的缩写,是一种二进制编码格式,在 Windows 以外很少使用。它包含在 .der 或 .cer 文件中。


PEM 格式

PEM是最常用的 SSL 证书格式,也是你可能会遇到的格式。大多数 CA 都提供 PEM 格式的 SSL 证书,证书文件扩展名各不相同,如 .pem、.crt、.cer 或 .key。

PEM是 “隐私增强型电子邮件“(Privacy-Enhanced Email)的缩写,您可能想知道电子邮件与 SSL 证书有什么关系? 长话短说,PEM 的主要工作失败了,但作为一种容器格式却得到了应用。

从本质上讲,PEM 文件是 Base64 编码的 DER 文件,其中的 0 和 1 是用可打印字符序列编码的。 这样,你就可以用任何文本编辑器(包括记事本)打开它们。

单个 .pem 文件可包含服务器证书、中间证书私钥。另外,你也可以在单独的 .crt 或 .cer 文件中接收服务器证书和中间证书,而私钥可以存在 .key 文件中。


PKCS#7 格式

PKCS公钥加密标准的缩写。

PKCS#7是一种多用途 SSL 证书格式,用于分发加密数据。 它主要用于 Windows 平台和 Java Tomcat。

如今,我们使用的实际上是它的后继者 CMS(加密信息语法),但就像SSL 和 TLS 一样,旧名称已经变得太熟悉,无法取代。

PKSC#7 有两种文件扩展名:.p7b 或 p7c。与 PEM 不同,PKCS#7 不能存储私钥,只能存储主证书和中间证书。


PKCS#12 格式

PKCS#12是另一种具有更高安全性的公共密码标准。与 PEM 文件一样,它可以在一个 .pfx 文件中包含整个 SSL 证书链和密钥对。主要区别在于 PCKS#12 是一个受密码保护的容器。

某些服务器系统会在生成 CSR 时提示输入密码,您可以使用密码打开 .pfx 文件。


SSL 格式转换

既然你已经知道了 SSL 证书格式及其多种证书文件扩展名,那么是时候揭示你真正期待的东西了–如何将 SSL 证书转换成任何格式。

与大多数文件转换一样,有多种不同的方法。 最快捷的方法是使用SSL 自动转换工具。 你只需选择所需的操作,例如将 PEM 转换为 PKCS#7,上传文件,然后点击 “转换”。

您也可以使用免费的 OpenSSL 软件库来转换 SSL 文件。 该实用程序可在几乎所有现有服务器上启用 SSL/TLS 协议。 许多平台和 Linux 发行版都预装了 OpenSSL 工具。 对于 Windows,您需要获取安装包


将 X.509 转换为 PEM

要将 X.509 转换为 PEM,请在 OpenSSL 中运行以下命令:

openssl x509 -in certificatename.cer -outform PEM -out certificatename.pem


将 DER 转换为 PEM

将二进制编码转换为 Base64 ASCII。

要将 DER 转换为 PEM,请运行以下命令:

openssl x509 -inform der -in certificatename.der -out certificatename.pem


将 PEM 转换为 DER

Base65 ASCII 转换为二进制编码。

要将 PEM 转换为 DER,请运行以下命令:

openssl x509 -inform der -in certificatename.der -out certificatename.pem


将 PEM 转换为 PKCS#7

.p7b 文件不包括私人密钥。

要将 PEM 转换为 PKCS#7,请运行以下命令:

openssl crl2pkcs7 -nocrl -certfile certificatename.pem -out certificatename.p7b -certfile CACert.cer


将 PKCS#7 转换为 PEM

要将 PKCS#7 转换为 PEM,请运行以下命令:

openssl pkcs7 -print_certs -in certificatename.p7b -out certificatename.pem


将 PKCS#12 转换为 PEM

PKCS#12 文件受密码保护。

要将 PKCS#12 转换为 PEM,请运行以下命令:

openssl pkcs12 -in certificatename.pfx -out certificatename.pem


将 PKCS7 转换为 PKCS12

这需要两个步骤。 首先将 P7B 文件转换为 CER,然后将 CER 和私钥合并为 PFX。

  1. openssl pkcs7 -print_certs -in certificatename.p7b -out certificatename.cer
  2. openssl pkcs12 -export -in certificatename.cer -inkey privateKey.key -out certificatename.pfx -certfile cacert.cer

差不多就是这样。 现在你可以快速转换任何类型的 SSL 文件并将其安装到服务器上。


结论

了解 SSL 证书格式、证书文件扩展名以及如何将它们转换为所需配置是一项宝贵的技能,它将帮助你在任何系统上无缝安装 SSL 证书

选择正确的 SSL 格式可确保网络服务器、电子邮件客户端、VPN 设备和网络的稳定加密和安全连接。

常见问题

导出证书备份文件使用什么文件扩展名?

导出证书备份文件使用的文件扩展名因证书的格式和类型而异。最常见的证书备份文件是 .p12 和 .pfx(Windows 系统)、.cer 和 .crt,以及用于备份私钥的 .key。

复制链接

APACHE2 支持哪些 SSL 证书文件类型?

Apache 使用 .cer .crt 和 .key 文件扩展名的 PEM 证书格式。

复制链接

如何在 Linux 中创建 ssl-certificate.pem 格式?

要在 Linux 上创建 PEM 格式的 SSL 证书,可以使用 OpenSSL 工具包及其命令行。 从 CA 收到 SSL 证书后,使用以下命令将私钥和 SSL 证书串联到一个文件中,即可创建 PEM 格式文件:

cat private.key your_ssl_certificate.crt > your_ssl_certificate.pem

复制链接

如何查找 SSL 证书的格式?

用任何文本编辑器打开 SSL 文件。 如果证书文件开头有”—–BEGIN CERTIFICATE—–“标签,文件结尾有”—–END CERTIFICATE—–“标签,则证书为 PEM 格式。 如果证书是 DER 格式,则不包含这些标签,而是二进制文件。

复制链接

哪种证书文件格式包含私钥?

PKCS#12 或 PFX 格式包含证书和私人密钥。 这种格式将私钥和相关证书存储在一个加密文件中。

复制链接

如何以 .pfx 格式导出 SSL 证书?

我们编写了一份详细指南,介绍如何在 Microsoft IIS(Internet 信息服务)中导入和导出 PFX 文件

复制链接

立即订购 SSL 证书, 可节省 10% 的费用!

快速发行, 强大加密, 99.99% 的浏览器信任度, 专业支持和 25 天退款保证. 优惠券代码 SAVE10

撰写人

经验丰富的内容撰稿人, 擅长 SSL 证书. 将复杂的网络安全主题转化为清晰, 引人入胜的内容. 通过有影响力的叙述, 为提高数字安全作出贡献.