Openssl 如何转换.spc&;格式。pem文件到.pfx文件

Openssl 如何转换.spc&;格式。pem文件到.pfx文件,openssl,certificate,ssl-certificate,Openssl,Certificate,Ssl Certificate,我有一个PKCS#7证书(.spc)的证书,还有一个.pem文件,如何在OpenSSL应用程序上将其转换为.pfx文件 谢谢。首先,文件扩展名没有电源;它们通常用于指示文件内容的格式,但并没有强制执行这一点。因此,名为'something.pem'的文件通常应该包含pem格式的数据,但完全可以对非pem的文件使用该扩展名,而对pem的文件使用不同的扩展名 第二,PEM不是一种单一的格式,它是一个由几十种格式组成的家族,其中包括十几种用于私钥的格式 如果您有一个.pem文件,它实际上是OpenSS

我有一个PKCS#7证书(.spc)的证书,还有一个.pem文件,如何在OpenSSL应用程序上将其转换为.pfx文件


谢谢。

首先,文件扩展名没有电源;它们通常用于指示文件内容的格式,但并没有强制执行这一点。因此,名为'something.pem'的文件通常应该包含pem格式的数据,但完全可以对非pem的文件使用该扩展名,而对pem的文件使用不同的扩展名

第二,PEM不是一种单一的格式,它是一个由几十种格式组成的家族,其中包括十几种用于私钥的格式

如果您有一个.pem文件,它实际上是OpenSSL支持的一种pem格式的私钥,并且PKCS7(.spc)文件包含与该私钥匹配的公钥的证书或链,并且您拥有或获得了OpenSSL(因为您标记了它,我假设您这样做了),那么:


如果您有一个.pem文件,该文件不是与PKCS7证书/链中的公钥相匹配的pem格式私钥,则您没有创建PKCS12/PFX文件所需的数据。

Stack Overflow是一个用于编程和开发问题的网站。这个问题似乎离题了,因为它与编程或开发无关。请参见帮助中心中的。也许或者是一个更好的提问地点。感谢您的回复,我是否需要以管理员身份使用CMD打开OpenSSL?我是否需要将spc和pem文件放在OpenSSL的目录中?@NicoTing:OpenSSL在Windows上不需要管理员,在Unix上不需要root,除了访问您指定的文件之外,不需要任何特权。它可以在您指定路径并具有权限的任何位置访问文件,尽管如果您将工作目录设置为OpenSSL安装目录(如果您指定程序路径或设置路径envvar,则无需这样做),您可能会发现将文件放在那里很方便。但是,如果在\Program Files*或\Windows下安装(通常不是默认设置)在现代Windows上,不要将任何程序的数据文件放在那里。我以管理员身份运行CMD并键入:cd\| mkdir certificate | cd certificate | set RANDFILE=c:\certificate\.rnd | set OPENSSL|u CONF=c:\OPENSSL-Win32\bin\opennssl.cfg | c:\OPENSSL-Win32\bin\OPENSSL.exe我将pem和spc文件放在证书文件夹中,但是你的代码没有work@NicoTing:我忘了CMD部分。使用反斜杠继续命令在shell上工作,但在CMD上不工作。可以在一个逻辑行上键入它而不使用反斜杠(使用wrapparound),或者使用“hat”而不是反斜杠。
 openssl pkcs7 -in whatever.spc -inform der -print_certs \
 | openssl pkcs12 -export -inkey keyfile.pem -out newfile.pfx