Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Certificate 扩展.pem和.crt可以互换使用吗?_Certificate - Fatal编程技术网

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

Certificate 扩展.pem和.crt可以互换使用吗?,certificate,Certificate,我有一个以PEM编码生成的授权证书。这是否意味着我可以同时称之为ca.pem和ca.crt?.crt和.pem的意思是否相同?或者它们实际上是不同的格式?对于一个文件,文件名和扩展名并不重要 Windows确实维护了语义类型(以及语义类型与如何处理语义类型)的扩展关联,这是ftype/assoc系统 C:\>assoc .cer .cer=CERFile C:\>ftype CERFile CERFile=%SystemRoot%\system32\rundll32.exe cry

我有一个以PEM编码生成的授权证书。这是否意味着我可以同时称之为
ca.pem
ca.crt
.crt
.pem
的意思是否相同?或者它们实际上是不同的格式?

对于一个文件,文件名和扩展名并不重要

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连字符
  • 结束
  • 空间
  • 与BEGIN中相同的字符串
  • 5连字符
  • 换行符或文件结尾
这些单词标识数据格式,然后由读取器使用。例如,对于证书,这是“开始证书”

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

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

这是否意味着我可以同时称之为ca.pem和ca.crt

如果您是按文件名加载内容,这可能无关紧要。如果您使用的是OpenSSL命令行工具,那肯定没关系(但他们希望数据在默认情况下是PEM编码的)

如果您在Windows上,希望双击工作,则需要
.cer
.crt