".CER"和".CRT"之间有什么区别?"

5

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

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


参见 https://dev59.com/93RB5IYBdhLWcg3wXmRI#642346 - erickson
2个回答

7

无。

扩展名和文件名是无用的,它们不计入内容。软件不关心你如何命名持有证书和私钥的文件名,它可以是foobar.42,只要内容正确就可以正常工作。

文件名只是为了帮助人类更容易地知道它是关于什么的。例如,通常使用站点名称作为文件名来清楚地标识它,然后在证书(.cert.crt.cer)和私钥(.key)一侧使用“某些”扩展名。您还可以生成证书签名请求(在获取证书之前生成的内容),通常为.csr

有时您可能也会发现.pem,这是模棱两可的:PEM是一种编码内容的格式,您可以对证书或密钥进行编码,因此仅凭.pem,您不知道它是关于什么的,而.crt.key至少可以清晰地区分开来。

现在,.cert可能是最明显的选择...但由于我们继承了一些过去操作系统的任意限制,我们通常更喜欢扩展名最多只有3个字母,因此在.cert缩短为.cer.crt之间进行选择(我认为后者更常见)。同样由于相同愚蠢的过去任意决定,某些操作系统根据文件名附加特定的操作。如果文件以.crt结尾与以.cer结尾,则您的操作系统可能会以不同的方式处理相同的文件。但这都是配置和本地首选项,再次强调只有内容真正重要。


3
在一个美好的世界中,每个人都值得信任,我们可能不需要加密、身份验证、证书等。但遗憾的是,这样的世界并不存在,坏人无处不在,因此需要加密,对称密钥应运而生。只需要一把密钥,客户端和服务器都相同,就可以加密和解密数据。这个过程很快,因为密钥通常只有256位长。一切都很好。
但有一个问题,如何安全分发密钥?于是公钥基础设施系统(PKI或PKIX(X代表X.509))诞生了,公钥被分发用于加密,私钥(不分发,因此更加安全)用于解密。这些被称为非对称密钥,通常至少有2048位,更加强大,但速度较慢。

然后我们需要一种标准来构建这些密钥,X.500出现了,逐渐演变成为X.509 v3,它以.DER(二进制)或.PEM(仅是在"-----BEGIN CERTIFICATE-----"和"-----END CERTIFICATE-----"之间用Base-64编码的DER)编码。因此,有时您可能会看到.DER格式,有时会看到.PEM格式的证书。

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

其中,一个很好的解释来自此处

.CRT = CRT扩展名用于证书。证书可以编码为二进制DER或ASCII PEM格式。CER和CRT扩展名几乎是同义词。在*nix系统中最常见。

CER = .crt的另一种形式(微软约定)。您可以使用MS将.crt转换为.cer(.cer均为DER编码,或base64[PEM]编码)。IE也将.cer文件扩展名识别为运行MS cryptoAPI命令的命令。

希望上述内容能够为您提供背景和一些关于众多证书扩展名的想法,这些扩展名有时可能会让新手感到困惑。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接