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

但这句话中的 “大多数情况下 “是很重要的。平台偏好、编码格式和服务器配置会让简单的重命名变成失败的安装。本指南将详细介绍什么是 .CRT 和 .CER 文件、它们之间的区别,以及如何在不破坏任何内容的情况下在它们之间进行转换。
目录
- 什么是 .CRT 文件?
- 什么是 .CER 文件?
- CRT 与 CER:究竟有何不同?
- PEM 与 DER:真正重要的编码
- 如何判断您使用的编码
- 如何在 CRT 和 CER 之间转换
- 您应该了解的其他证书文件格式
- 您应该使用哪种扩展?
- 常见问题
什么是 .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:究竟有何不同?

从技术上讲,.CRT 和 .CER 文件在功能上没有区别。两者都持有X.509 证书,都可以使用 PEM 或 DER 编码,在 SSL/TLS 配置中的作用相同。两者之间的区别在于约定俗成、平台默认设置和服务器期望值。
| 特点 | .CRT | .CER |
| 证书数据 | X.509 公钥证书 | X.509 公钥证书 |
| 通用平台 | Unix / Linux | 视窗 |
| 典型编码 | PEM(Base64 ASCII) | DER (二进制)或 PEM |
| 已使用 | Apache、Nginx、OpenSSL | IIS、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 证书存储中很常见。
| 特点 | PEM | DER |
| 编码 | 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
无论哪条命令返回证书详细信息,都会告诉你编码格式。
如何在 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 上使用图形用户界面:
- 双击证书文件打开。
- 转到 “详细信息“选项卡,然后单击 “复制到文件“。
- 在证书导出向导中,选择DER 编码二进制 X.509 (.CER)或Base-64 编码 X.509 (.CER) ,然后以所需扩展名保存。
故障排除小贴士:如果转换后服务器拒绝接受证书,请仔细检查编码格式,而不仅仅是扩展名。即使扩展名正确,PEM 格式的 .CER 文件在需要 DER 的地方也无法使用。
您应该了解的其他证书文件格式
除了 .CRT 和 .CER,在 SSL 管理过程中还会遇到其他几种证书文件扩展名。下面是一个快速参考:
| 扩展 | 格式 | 使用案例 |
| .PEM | Base64 ASCII 文本 | 通用;可保存证书、私钥和证书链 |
| .DER | 二进制 | 二进制单一证书;常见于 Java 环境 |
| .PFX / .P12 | 二进制(PKCS#12) | 将证书+私钥+链打包成一个受密码保护的文件 |
| .P7B / .P7C | Base64 ASCII(PKCS#7) | 仅证书链 – 无私人密钥;用于 Windows 和 Java |
| .KEY | PEM 或 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 证书,确保你的网站安全。






