我负责维护两台Debian服务器。每当我需要做任何与安全证书有关的事情时,我都会在谷歌上搜索教程,然后打打杀杀,直到最后成功。
然而,在我的搜索中,我经常遇到不同的文件格式(.key',
.csr', `.pem'),但我从来没有找到一个很好的解释,说明每个文件格式的用途是什么。
我在想,ServerFault的好心人是否可以就这个问题提供一些澄清?
SSL已经存在了足够长的时间,你会认为会有商定的容器格式。而你是对的,有的。太多的标准了,因为它发生了。所以这是我所知道的,我相信其他人也会加入进来。
/etc/ssl/certs
),也可能包括整个证书链,包括公钥、私钥和根证书。令人困惑的是,它也可以对CSR进行编码(例如,如使用这里),因为PKCS10格式可以被翻译成PEM。这个名字来自隐私增强邮件(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