扩展名.pem和.crt可以互换使用吗?

时间:2019-01-15 12:18:49

标签: certificate

我有一个用PEM编码生成的授权证书。这是否意味着我可以同时命名为ca.pemca.crt.crt.pem可以表示同一意思吗?还是它们实际上是不同的格式?

1 个答案:

答案 0 :(得分:1)

对于文件,文件名和扩展名无关紧要。

Windows确实维护了ftype / assoc系统的语义类型(以及该做什么的语义类型)的扩展名。

C:\>assoc .cer
.cer=CERFile

C:\>ftype CERFile
CERFile=%SystemRoot%\system32\rundll32.exe cryptext.dll,CryptExtOpenCER %1

我们还可以问“所有关联是什么?”,然后进行过滤:

C:\>assoc | findstr CERFile
.cer=CERFile
.crt=CERFile
.der=CERFile

因此Windows将.cer.crt.der中的任何一个视为相同。

另一方面,

PEM不是默认关联:

C:\>assoc .pem
File association not found for extension .pem

通常,“。pem”表示某些数据是“隐私增强邮件”(PEM)格式,

  • (文件或换行开头)
  • 5个连字符
  • 开始
  • 一个空格
  • 一个或多个以空格结尾的字符
  • 5个连字符
  • 换行符
  • Base64数据,将64个字符格式化为一行
  • 换行符
  • 5个连字符
  • END
  • 一个空格
  • 与BEGIN中相同的字符串
  • 5个连字符
  • 换行符或文件结尾

单词标识数据格式,然后供阅读器使用。例如,对于证书,该证书为“ BEGIN CERTIFICATE”。

证书实际上是用一种称为DER(可分辨编码规则(用于ASN.1数据)的二进制编码)定义的。证书处理器最终需要二进制数据(经过base64编码的二进制数据),但是它们在期望DER还是PEM数据方面可能有所不同。对于许多Windows API而言,证书都可以以任何一种形式出现,并且底层系统内容可以通过嗅探确定数据的格式。

对于.cer.crt.der是PEM或DER数据,没有真正的标准或启发式;尽管有些人会期望.der是DER :)。 (但是很多东西都是DER编码的;不仅仅是证书)

  

这是否意味着我可以同时命名为ca.pem和ca.crt?

如果按文件名加载内容,则可能没有关系。如果您使用的是OpenSSL命令行工具,那绝对没关系(但是他们希望数据默认情况下是经过PEM编码的。)

如果您使用的是Windows,并且希望双击运行,则需要.cer.crt