理解pem pfx文件

ByteRiderMaster
• 阅读 476

Der 、Cer、 Pfx、 Pem它们都是扩展名(文件名的后缀,代表格式)
.DER:用二进制DER编码的证书;.PEM:用ASCLL(BASE64)编码的证书; .CER:存放公钥,没有私钥; .PFX:存放公钥和私钥(pem 后缀的证书都是base64编码;der 后缀的证书都是二进制格式;crt .cer 后缀的文件都是证书文件(编码方式不一定,有可能是.pem,也有可能是.der);.pfx 主要用于windows平台,浏览器可以使用,也是包含证书和私钥,获取私钥需要密码才可以)

X509文件扩展名(x509 这种证书只有公钥,不包含私钥。)

编码(也用作扩展)

DER = DER扩展用于二进制DER编码证书。这些文件也可能带有CER或CRT扩展名。正确的英语用法是“我有DER编码证书”而不是“我有DER证书”。

PEM = PEM扩展名用于不同类型的X.509v3文件,这些文件包含前缀为“-BEGIN …”行的ASCII(Base64)装甲数据。

组合

在某些情况下,将多个X.509基础结构组合成单个文件是有利的。一个常见的例子是将私钥和公钥组合到同一个证书中。

组合证书密钥和链的最简单方法是将每个密钥转换为PEM编码证书,然后将每个文件的内容简单复制到新文件中。这适用于组合文件以在Apache应用程序中使用。

萃取

有些证书将以合并形式出现。其中一个文件可以包含以下任何一个:证书,私钥,公钥,签名证书,证书颁发机构(CA)和/或授权链。

PEM 格式
PEM格式通常用于数字证书认证机构(Certificate Authorities,CA),扩展名为.pem, .crt, .cer, and .key。内容为Base64编码的ASCII码文件,有类似"-----BEGIN CERTIFICATE-----" 和 "-----END CERTIFICATE-----"的头尾标记。服务器认证证书,中级认证证书和私钥都可以储存为PEM格式(认证证书其实就是公钥)。Apache和类似的服务器使用PEM格式证书。

ssl certificate pem file

DER 格式
DER格式与PEM不同之处在于其使用二进制而不是Base64编码的ASCII。扩展名为.der,但也经常使用.cer用作扩展名,所有类型的认证证书和私钥都可以存储为DER格式。Java使其典型使用平台。

pfx file with examples

可以使用OpenSSL命令行工具在不同证书格式之间的转换
converting cer crt der pem pfx certificate

converting ssl certificate from crt to pem

PEM to DER

openssl x509 -outform der -in certificate.pem -out certificate.der

PEM to PFX

openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.crt -certfile CACert.crt

DER to PEM

openssl x509 -inform der -in certificate.cer -out certificate.pem

PFX to PEM

openssl pkcs12 -in certificate.pfx -out certificate.cer -nodes

PFX转PEM后certificate.cer文件包含认证证书和私钥,需要把它们分开存储才能使用。)

知识点:
1、使用公钥操作数据属于加密

2、使用私钥对原文的摘要操作属于签名

3、公钥和私钥可以互相加解密

4、不同格式的证书之间可以互相转换

5、公钥可以对外公开,但是私钥千万不要泄露,要妥善保存

注意:在我们备份证书信息的时候,最好使用.jks或者.pfx文件进行保存,这样备份的证书文件可以被完整的导出。
参考链接:
How to convert pfx to pem

点赞
收藏
评论区
推荐文章
Wesley13 Wesley13
3年前
SSL 证书格式普及
本篇文章就是来个大家普及一下证书的格式。根据不同的服务器以及服务器的版本,我们需要用到不同的证书格式,就市面上主流的服务器来说,大概有以下格式:.DER.CER,文件是二进制格式,只保存证书,不保存私钥。.PEM,一般是文本格式,可保存证书,可保存私钥。.CRT,可以是二进制格式,可以是文本格式,与.DER格式相同,不保存私钥。.PFX
Wesley13 Wesley13
3年前
RSA加密
rsa加密的解决方案都是需要证书或者文件的,对于服务端提供了公钥,没有给证书或者pem文件的rsa加密:把公钥和你需要编码得Nsstring都转换成NSData用rsa公钥编码你所需要编码得内容最后转换成Nsstring//库 SecKeyWrapper//RSA加密\(NSString\)encryptWithStr
Stella981 Stella981
3年前
OpenSSL和Python实现RSA Key公钥加密私钥解密
基于非对称算法的RSAKey主要有两个用途,数字签名和验证(私钥签名,公钥验证),以及非对称加解密(公钥加密,私钥解密)。本文提供一个基于OpenSSL和Python进行非对称加解密的例子。1\.OpenSSL实现非对称加解密1.1生成私钥,并导出公钥生成2048bit的PEM格式的RSAKey:Key.pem$openssl
Wesley13 Wesley13
3年前
HTTPS安全通信过程
一、两对公私钥1、CA公私钥:CA公钥:预装在操作系统,内置在浏览器中。备注:微软等公司会根据一些权威安全机构的评估选取一些信誉很好并且通过一定的安全认证的证书发布机构,把这些证书发布机构的证书默认安装在操作系统中,并且设置为操作系统信任的数字证书。CA私钥:由CA机构保管,不会外泄。2、服务公私钥:服
Stella981 Stella981
3年前
OpenVPN使用easy
cd/etc/easyrsa./easyrsarevoketargetkey(证书名)./easyrsagencrl其中gencrl会生成一份吊销证书的名单,放在pki/crl.pem文件里最后再server.conf文件中增加此项:crlverifycrl.pem特别说明:吊销的证书不会
Wesley13 Wesley13
3年前
Java基础学习总结(16)——Java制作证书的工具keytool用法总结
一、keytool的概念  keytool是个密钥和证书管理工具。它使用户能够管理自己的公钥/私钥对及相关证书,用于(通过数字签名)自我认证(用户向别的用户/服务认证自己)或数据完整性以及认证服务。在JDK 1.4以后的版本中都包含了这一工具,它的位置为%JAVA\_HOME%\\bin\\keytool.exe,如下图所示:
Stella981 Stella981
3年前
Anroid导入Burp证书问题
一些android设备:信任CA证书,一般支持crt格式不支持der格式.所以需要装换证书格式DER转CRT命令opensslx509informDERoutformPEMinburpca.deroutmyca.crt.pem小技巧:开启微型http服务cdmydirpythonmSimpleHTTPSer
Wesley13 Wesley13
3年前
VC++网络安全编程范例(2)
数字证书采用公钥体制,即利用一对互相匹配的密钥进行加密、解密。每个用户自己设定一把特定的仅为本人所知的私有密钥(私钥),用它进行解密和签名;同时设定一把公共密钥(公钥)并由本人公开,为一组用户所共享,用于加密和验证签名。当发送一份保密文件时,发送方使用接收方的公钥对数据加密,而接收方则使用自己的私钥解密,这样信息就可以安全无误地到达目的地了。通过数字的手段
Stella981 Stella981
3年前
Chrome 或将于2018年正式弃用 HPKP 公钥固定标准
早些年谷歌工程师为了提高互联网整体的安全性避免因证书颁发机构违规操作而设计了HPKP公钥固定标准。公钥固定允许网站在服务器部署证书颁发机构的哈希值,若网站使用的证书与固定的哈希不对应则拒绝连接。公钥固定的现实意义在于如果有CA证书颁发机构违规向某个域名私自签发证书那么也无法实现对网站的劫持。但是现在谷歌浏览器已经决定弃用HPKP公钥固定标准
融云IM即时通讯 融云IM即时通讯
7个月前
融云IM干货丨如何为App Key配置HTTPS证书?
为AppKey配置HTTPS证书主要涉及以下几个步骤:生成密钥对和自签名证书:使用openssl工具生成密钥对和自签名证书,这是配置HTTPS的基础。可以通过以下命令生成:opensslgenrsaoutmykey.pem2048opensslreqnew
融云IM即时通讯 融云IM即时通讯
7个月前
融云IM干货丨Android 7.0 如何设置自定义证书?
​在Android7.0及以上版本中,系统默认不再信任用户安装的CA证书,因此需要将自定义证书导入为系统证书。以下是详细的步骤:从你的抓包工具(如Charles、Fiddler等)导出CA证书,通常为.cer或.pem格式。使用OpenSSL工具计算证书的