我负责维护两台 Debian 服务器。每次我必须对安全证书做任何事情时,我都会在谷歌上搜索教程并不断努力,直到它最终奏效。
但是,在我的搜索中,我经常遇到不同的文件格式(.key
, .csr
, .pem
),但我一直无法很好地解释每种文件格式的用途。
我想知道ServerFault的好人是否可以就此事提供一些澄清?
我负责维护两台 Debian 服务器。每次我必须对安全证书做任何事情时,我都会在谷歌上搜索教程并不断努力,直到它最终奏效。
但是,在我的搜索中,我经常遇到不同的文件格式(.key
, .csr
, .pem
),但我一直无法很好地解释每种文件格式的用途。
我想知道ServerFault的好人是否可以就此事提供一些澄清?
SSL 已经存在了很长时间,您会认为容器格式会达成一致。你是对的,有。太多的标准,因为它发生。最后,所有这些都是以机器可读的方式对抽象语法符号 1 (ASN.1)格式化数据进行编码的不同方式——这恰好是定义 x509 证书的格式。
/etc/ssl/certs
),或者可能包括整个证书链,包括公钥、私钥和根证书。令人困惑的是,它也可能对 CSR 进行编码(例如,此处使用的),因为 PKCS10 格式可以转换为 PEM。该名称来自Privacy Enhanced Mail (PEM),这是一种失败的安全电子邮件方法,但它使用的容器格式仍然存在,并且是 x509 ASN.1 密钥的 base64 转换。/etc/ssl/private
. 这些文件的权限非常重要,如果设置错误,有些程序会拒绝加载这些证书。openssl pkcs12 -in file-to-convert.p12 -out converted-file.pem -nodes
不时出现的其他一些格式:
openssl x509 -inform der -in to-convert.der -out converted.pem
)。Windows 将这些视为证书文件。默认情况下,Windows 会将证书导出为具有不同扩展名的 .DER 格式文件。喜欢....keystore
其用作扩展。与 .pem 样式的证书不同,此格式具有包含证书路径证书的定义方式。总之,有四种不同的方式来展示证书及其组成部分:
我希望这有帮助。
PEM 本身不是证书,它只是一种编码数据的方式。X.509 证书是一种通常使用 PEM 编码的数据类型。
PEM 是 X.509 证书(其结构使用 ASN.1 定义),使用 ASN.1 DER(可区分编码规则)编码,然后通过 Base64 编码运行并停留在纯文本锚线(BEGIN CERTIFICATE 和 END CERTIFICATE )。
您可以使用 PKCS#7 或 PKCS#12 表示法来表示相同的数据,并且可以使用 openssl 命令行实用程序来执行此操作。
PEM 的明显好处是可以安全地粘贴到电子邮件正文中,因为它有锚线并且是 7 位干净的。
RFC1422有更多关于 PEM 标准的详细信息,因为它与密钥和证书相关。
有时
.crt
文件已经是.pem
. 请参阅:https ://stackoverflow.com/questions/991758/openssl-pem-key