.CER 和 .CRT 有什么区别?

What is the difference between .CER and .CRT?

.cer 和.crt 有区别吗?我知道它们都是相同的 SSL 证书格式,但不知道它们之间有什么区别。

如果没有区别,为什么有 2 个不同的扩展名?

None.

扩展名和文件名一样无用。他们不算数。只有内容才重要。该软件不关心您如何称呼您的文件名、持有证书和私钥,它可以是 foobar.42 并且也可以正常工作(只要内容正确)。

这些名称只是为了帮助人们更容易地了解它的含义。例如,习惯上使用站点名称作为文件名以清楚地识别它,然后使用 "some" 扩展名,一方面用于证书(.cert.crt.cer) 和私钥 (.key)。您还有证书签名请求(您在获得证书之前生成的东西),通常是 .csr.

你有时也会发现.pem,这是模棱两可的:PEM是一种编码内容的格式,你可以编码证书或密钥,所以只是.pem你不知道.crt.key 的区别至少要弄清楚。

现在,.cert 可能是最明显的选择...但是由于我们继承了过去 OS 的某些过去的任意限制,我们通常更喜欢最多 3 个字母的扩展名,所以在缩短 .cert.cer.crt 之间选择你的毒药(后者在我看来更常见)。 此外,对于过去同样愚蠢的任意决定,一些 OS 根据文件的名称对特定文件附加特定操作。如果以 .crt 结尾与以 .cer 结尾,您的 OS 可能会以不同方式处理同一个文件。但这都是配置和本地偏好,只有内容才是真正重要的。

在一个每个人都可以信任的美好世界中,我们可能不需要加密、身份验证、证书等。但不幸的是,这样的世界并不存在,坏人无处不在,于是就有了加密的需要,于是对称密钥诞生了。客户端和服务器加密和解密数据所需的 1 个密钥是相同的。这个过程很快,因为密钥的长度通常只有 256 位。一切顺利。

一个问题是,我们如何安全地分发密钥?

诞生了 public 密钥基础设施系统,PKI 或 PKIX(X 代表 X.509),其中分发 public 密钥进行加密,而私钥(未分发,因此 secure), 来解密。这些被称为 非对称密钥,通常至少为 2048 位,更健壮,但你猜对了,速度更慢。

然后我们需要一个标准来构造那些密钥,X.500 出现了,进化 为 X.509 v3,它是以 .DER(binary) 或 .PEM( 编码,这只是 DER 的 base-64 编码,包含在“-----BEGIN CERTIFICATE-----”和“---”之间--END CERTIFICATE-----)。因此,有时您可能会看到 .DER,有时会看到 .PEM 证书。

除了 .DER 和 .PEM,我们还有其他相关的证书格式,例如 .CER 和 .CRT。

区别,很好的解释取自here

.CRT = The CRT extension is used for certificates. The certificates may be encoded as binary DER or as ASCII PEM. The CER and CRT extensions are nearly synonymous. Most common among *nix systems

CER = alternate form of .crt (Microsoft Convention) You can use MS to convert .crt to .cer (.both DER encoded .cer, or base64[PEM] encoded .cer) The .cer file extension is also recognized by IE as a command to run a MS cryptoAPI command

希望上面的内容让您对 oh-so-many 证书扩展有了一定的了解,有时可能会很困惑,尤其是对于新手。