将.pfx转换为.cer

是否可以将.pfx(个人信息交换)文件转换为.cer(安全证书)文件? 除非我错了,不是.cer以某种方式embedded.pfx内? 如果可能的话,我想要一些方法来提取它。

我相信简单的方法是导入它,然后使用Windowspipe理控制台中的证书pipe理器将其导出。

PFX文件是PKCS#12个人信息交换语法标准软件包。 它们可以包含随附的X.509证书和证书颁发机构链(设置证书)的任意数量的私钥。

如果你想提取客户端证书,你可以使用OpenSSL的PKCS12工具 。

openssl pkcs12 -in input.pfx -out mycerts.crt -nokeys -clcerts 

以上命令将以PEM格式输出证书。 “.crt”文件扩展名由macOS和Window处理。

您在通常用于DER编码文件的问题中提到“.cer”扩展名。 Binart编码。 首先尝试“.crt”文件,如果不被接受,则很容易从PEM转换为DER:

 openssl x509 -inform pem -in mycerts.crt -outform der -out mycerts.cer 

我想添加一个我认为最简单的方法。

  1. 只需右键单击pfx文件,单击“安装”按照向导,并将其添加到商店(我已添加到个人商店)。

  2. 在开始菜单中键入certmgr.msc并转到CertManager程序。

  3. find你的pfx证书(顶部的标签是各种商店),点击导出button,然后按照向导(有一个选项导出为.CER)

本质上,它和Andrew的答案一样,但是避免使用Windowspipe理控制台(直接导入/导出)。

如果你在PowerShell中工作,你可以使用类似下面的方法,给定一个pfx文件InputBundle.pfx来产生DER编码的(二进制)证书文件OutputCert.der

 Get-PfxCertificate -FilePath InputBundle.pfx | Export-Certificate -FilePath OutputCert.der -Type CERT 

换行添加清晰,但你当然可以在一条线上。

如果您需要以ASCII / Base64编码的PEM格式的证书,您可以采取额外的步骤来执行此操作,如其他位置所述,例如: https : //superuser.com/questions/351548/windows-integrated-utility-to-convert -der到PEM

如果需要导出与DER编码不同的格式,可以将导出证书的-Type参数更改为使用.NET支持的types,如help Export-Certificate -Detailed

 -Type <CertType> Specifies the type of output file for the certificate export as follows. -- SST: A Microsoft serialized certificate store (.sst) file format which can contain one or more certificates. This is the default value for multiple certificates. -- CERT: A .cer file format which contains a single DER-encoded certificate. This is the default value for one certificate. -- P7B: A PKCS#7 file format which can contain one or more certificates. 
 openssl rsa -in f.pem -inform PEM -out f.der -outform DER