有什么区别.pem
,,,,.cer
和.der
?
据我所知,.cer
包含公钥。我可以使用此公共密钥使用任何开放式框架来对数据进行加密?
答案
.pem
,,,,.cer
和.der
都是可能包含X.509 V3证书的文件的所有文件扩展名。
这.der
扩大
DER 是对构成证书的数据进行编码的方法。 任何一种数据,但通常它描述编码证书或 CMS 容器。
证书的结构使用 ASN.1 数据表示语言进行描述。
这.pem
扩大
PEM 是一种将二进制数据编码为字符串(ASCII 装甲)的方法。
PEM 还可以编码/保护与证书相关的其他类型的数据,例如公钥/私钥、证书请求等。如果内容是常见的 X509v3 证书,则 PEM 编码为:
-----BEGIN CERTIFICATE-----
... base 64 encoding of the DER encoded certificate
with line endings and padding with equals signs ...
-----END CERTIFICATE-----
请注意,PEM 文件还可能包含完整的证书链,其中该链以服务的叶/结束证书开始,后跟对其进行签名的证书,通常直至但不包括受信任的根证书。
这.cer
或者.crt
扩大
.cer
只是代表证书。file
%20utility%20on%20posix%20systems)%20to%20see%20what%20is%20in%20the%20file%20to%20be%20100%%20sure。
其他 OpenSSL 格式
看一眼这个答案有关 OpenSSL 支持的内容的更广泛列表。
使用公钥包含 在证书中(和被…签名证书中的签名)您应该使用任何解析 X.509 证书并执行 RSA 加密的库。
OpenSSL 命令行包含许多选项,可用于在 PEM 和 DER 之间进行转换、打印高级证书信息或解析 ASN.1 以获取其中内容的低级视图。
细节
与大多数 ASN.1 结构一样,DER 编码的证书始终以一个字节开始30
这是 ASN.1 的标签编码SEQUENCE
。结构这是严格定义的。
同样,PEM 编码文件中的基数 64 始终以字母开头M
作为 ASN.1SEQUENCE
以一个字节开始30
,所以前 6 位是001100
,翻译为数字 12,即字母的索引M
,字母表中的第十三个字母。