bg-blog-articles

CRT 与 CER 文件扩展名详解

您刚刚收到 SSL 证书文件,并注意到两个扩展名:.crt.cer。你的服务器需要一个扩展名,你的证书颁发机构(CA)需要另一个扩展名。在你开始排除故障之前,这里有一个简短的答案:这两个文件扩展名持有相同的 X.509 证书数据,区别主要在于命名约定。

CER 与 CRT

但这句话中的 “大多数情况下 “是很重要的。平台偏好、编码格式和服务器配置会让简单的重命名变成失败的安装。本指南将详细介绍什么是 .CRT 和 .CER 文件、它们之间的区别,以及如何在不破坏任何内容的情况下在它们之间进行转换。


目录

  1. 什么是 .CRT 文件?
  2. 什么是 .CER 文件?
  3. CRT 与 CER:究竟有何不同?
  4. PEM 与 DER:真正重要的编码
  5. 如何判断您使用的编码
  6. 如何在 CRT 和 CER 之间转换
  7. 您应该了解的其他证书文件格式
  8. 您应该使用哪种扩展?
  9. 常见问题

今天从 SSL Dragon 订购 SSL 证书,可节省 10% 的费用!

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

龙飞行的详细图像

什么是 .CRT 文件?

.CRT 文件是存储 X.509 公钥证书的证书文件。它包含证书持有者的公开密钥、身份信息(如域名或组织机构)以及颁发证书的 CA 的数字签名。

.CRT 扩展名是Unix 和 Linux 系统的默认扩展名。如果你在 Apache、Nginx 或其他大多数基于 Linux 的网络服务器上设置过 SSL/TLS,那么你很可能使用过 .CRT 文件。它们几乎总是以 PEM 格式– 这是一种 Base64 ASCII 文本文件,可以在任何文本编辑器中打开。你会看到 —–BEGIN CERTIFICATE—– 和 —–END CERTIFICATE—– 头文件之间包裹的内容。


什么是 .CER 文件?

.CER 文件还存储一个 X.509 公钥证书,其中包含相同的数据–公钥、身份详情和 CA 签名。其内容与 .CRT 文件中的内容相同。

.CER 扩展名在Windows 系统中更为常见。从 Microsoft IIS、Windows 证书管理器或 Active Directory 证书服务导出证书时,默认输出为 .CER 文件。这些文件可以是PEM 格式(Base64 文本)或DER 格式(二进制)。编码取决于导出文件的方式,而不是文件扩展名本身。


CRT 与 CER:究竟有何不同?

CER 和 CRT 的差异

从技术上讲,.CRT 和 .CER 文件在功能上没有区别。两者都持有X.509 证书,都可以使用 PEM 或 DER 编码,在 SSL/TLS 配置中的作用相同。两者之间的区别在于约定俗成、平台默认设置和服务器期望值。

特点.CRT.CER
证书数据X.509 公钥证书X.509 公钥证书
通用平台Unix / Linux视窗
典型编码PEM(Base64 ASCII)DER (二进制)或 PEM
已使用Apache、Nginx、OpenSSLIIS、Windows 工具、Java (DER)
人可读?是(当 PEM 时)仅当 PEM 编码时
是否包含私人密钥?否(仅限公共证书)否(仅限公共证书)
可互换?

主要启示文件扩展名并不决定编码。.CER 文件可以是 PEM 编码,而 .CRT 文件可以是 DER 编码。重要的是文件内容,而不是扩展名。


PEM 与 DER:真正重要的编码

由于 .CRT 和 .CER 本质上是一样的,因此要了解的真正区别在于这两个扩展名可以使用的两种编码格式:PEM 和 DER。

PEM(隐私增强邮件)是一种基于文本的格式,以 Base64 ASCII 编码证书数据。PEM 文件是人类可读的–你可以在记事本、VS Code 或任何文本编辑器中打开它们,查看 BEGIN/END 头之间的 Base64 内容。PEM 是 Apache、Nginx 和大多数开源服务器软件的标准格式。

DER(区分编码规则)是二进制文件。DER 文件包含相同的证书数据,但为原始二进制,因此无法用文本编辑器阅读。DER 编码在基于 Java 的环境和 Windows 证书存储中很常见。

特点PEMDER
编码Base64 ASCII 文本二进制
能否用文本编辑器阅读?没有
文件大小稍大较小
常见扩展.crt, .cer, .pem.cer, .der
典型平台Linux、Apache、Nginx视窗、Java
可以存储多个证书吗?是(连锁在一个文件中)否(每个文件只有一个证书)

如何判断您使用的编码

仅从文件扩展名并不总能看出编码。但有两种快速检查方法:

1.用文本编辑器打开文件。 如果你看到 —–BEGIN CERTIFICATE—– 后跟了一个 Base64 文本块,那就是 PEM 编码。如果文件看起来像胡言乱语或乱码,则是 DER 编码。

2.使用 OpenSSL 对其进行检查。 运行以下命令尝试以 PEM 格式读取文件:

openssl x509 -in certificate.crt -text -noout

如果返回错误,请尝试以 DER 格式读取:

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

无论哪条命令返回证书详细信息,都会告诉你编码格式。


今天从 SSL Dragon 订购 SSL 证书,可节省 10% 的费用!

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

龙飞行的详细图像

如何在 CRT 和 CER 之间转换

转换过程取决于您是只更改文件扩展名,还是同时转换编码格式。

相同编码 – 重命名即可

如果两个文件使用相同的编码(都是 PEM 或都是 DER),可以直接重命名扩展名。无需更改数据:

Linux / macOS

mv certificate.crt certificate.cer

视窗(命令提示符)

ren certificate.crt certificate.cer

PEM 转换为 DER(反之亦然)

如果您需要更改编码–例如,您的服务器希望使用 DER 编码的 .CER,但您使用的是 PEM 编码的 .CRT–请使用 打开:

将 PEM (.CRT) 转换为 DER (.CER)

openssl x509 -in certificate.crt -outform der -out certificate.cer

将 DER (.CER) 转换为 PEM (.CRT)

openssl x509 -in certificate.cer -inform der -outform pem -out certificate.crt

使用 Windows 证书导出向导

如果您喜欢在 Windows 上使用图形用户界面:

  1. 双击证书文件打开。
  2. 转到 “详细信息“选项卡,然后单击 “复制到文件“。
  3. 在证书导出向导中,选择DER 编码二进制 X.509 (.CER)Base-64 编码 X.509 (.CER) ,然后以所需扩展名保存。

故障排除小贴士:如果转换后服务器拒绝接受证书,请仔细检查编码格式,而不仅仅是扩展名。即使扩展名正确,PEM 格式的 .CER 文件在需要 DER 的地方也无法使用。


您应该了解的其他证书文件格式

除了 .CRT 和 .CER,在 SSL 管理过程中还会遇到其他几种证书文件扩展名。下面是一个快速参考:

扩展格式使用案例
.PEMBase64 ASCII 文本通用;可保存证书、私钥和证书链
.DER二进制二进制单一证书;常见于 Java 环境
.PFX / .P12二进制(PKCS#12)将证书+私钥+链打包成一个受密码保护的文件
.P7B / .P7CBase64 ASCII(PKCS#7)仅证书链 – 无私人密钥;用于 Windows 和 Java
.KEYPEM 或 DER私钥文件(不是证书,但通常与 .CRT 文件配对使用)

其中,.PFX(PKCS#12)文件值得特别注意。与只包含公共证书的 .CRT 和 .CER 不同,PFX 文件将证书、私钥中间证书捆绑到一个加密文件中。在将证书导入 Windows IIS 或导出备份时,经常会用到 PFX 文件。


您应该使用哪种扩展?

答案取决于您的服务器和操作系统:

如果运行 Apache、Nginx 或其他基于 Linux/Unix 的网络服务器,请使用 .CRT。这些平台需要 PEM 编码的证书,而 .CRT 扩展名是标准约定。

如果您正在使用 Microsoft IIS、Windows Server 或其他基于 Windows 的系统,请使用 .CER。.CER 扩展名是 Windows 工具默认生成和期望使用的扩展名。

如有疑问,请查阅服务器文档。有些平台比较灵活,可以接受任意扩展名。其他平台则对文件命名有严格要求。你的主机提供商的文档或SSL 安装指南会明确说明需要什么。


常见问题

.CRT 和 .CER 文件是否相同?

从功能上讲,是的。两者都存储 X.509 公钥证书数据,并可使用 PEM 或 DER 编码。两者的区别在于命名约定:.CRT 是 Linux/Unix 的标准,.CER 是 Windows 的标准。

我能把 .CRT 重命名为 .CER 吗?

如果两者使用相同的编码格式,则可以。但如果需要从 PEM 转换为 DER 编码(反之亦然),则应使用 OpenSSL 转换文件内容,而不仅仅是扩展名。

.CRT 或 .CER 文件是否包含私人密钥?

不 这两种扩展都只存储公共证书。私钥保存在单独的文件(通常为 .KEY)中,或捆绑到 PKCS#12 (.PFX/.P12) 容器中。

我的服务器需要什么编码?

Apache 和 Nginx 通常需要 PEM 编码。Microsoft IIS 和 Java 应用程序通常使用 DER。有关具体要求,请查阅服务器的 SSL 配置文档。


底线

CRT 与 CER 之争,与其说是技术上的差异,不如说是命名规则上的差异。两种扩展都能存储 X.509 证书,都能以 PEM 或 DER 格式编码。重要的是根据服务器的要求匹配正确的编码,而 OpenSSL 使转换变得简单。

如果你的网站需要可靠的 SSL 证书,SSL Dragon可提供来自 DigiCert、Sectigo 和 GeoTrust 等顶级 CA 的各种可信证书。无论你使用的是 Apache、Nginx 还是 IIS,你都将获得正确的文件以及逐步安装支持。在 ssldragon.com浏览 SSL 证书,确保你的网站安全。

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

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

龙飞行的详细图像
撰写人

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