【问题标题】:How can I convert my .spc & .pem file to .pfx file如何将我的 .spc 和 .pem 文件转换为 .pfx 文件
【发布时间】:2018-07-18 15:13:18
【问题描述】:

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

谢谢。

【问题讨论】:

标签: openssl certificate ssl-certificate


【解决方案1】:

首先,文件扩展名没有权力;它们通常用于指示文件内容的格式,但没有强制执行此操作。因此,名为“something.pem”的文件通常应该包含 PEM 格式的数据,但完全可以将扩展名用于非 PEM 文件,并使用不同的扩展名作为文件是 PEM。

其次,PEM 不是单一格式,它是数十种格式的家族,其中大约有十几种用于私钥。

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

 openssl pkcs7 -in whatever.spc -inform der -print_certs \
 | openssl pkcs12 -export -inkey keyfile.pem -out newfile.pfx 

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

【讨论】:

  • 感谢回复,我需要以管理员身份使用CMD打开OpenSSL吗?我需要将我的spc和pem文件放在openssl目录下吗?
  • @NicoTing:OpenSSL 在 Windows 上不需要管理员,在 Unix 上不需要 root,或者除了访问您指定的文件之外的任何特殊权限。它可以在您指定路径并拥有权限的任何地方访问文件,尽管 if 您将工作目录设为 OpenSSL 安装目录(如果您指定程序路径或设置 PATH 环境变量,则不需要这样做) 您可能会发现将文件放在那里很方便。但是,如果您安装在 \Program Files* 或 \Windows(这通常不是默认设置)下不要在现代 Windows 上为 any 程序放置数据文件。
  • 我以管理员身份运行 CMD 并输入:cd \ | mkdir 证书 |光盘证书|设置 RANDFILE=c:\certificate\.rnd |设置 OPENSSL_CONF=c:\OpenSSL-Win32\bin\opennssl.cfg | C:\OpenSSL-Win32\bin\openssl.exe 我把我的pem和spc文件放在了证书文件夹里,但是你的代码不起作用
  • @NicoTing:我忘记了 CMD 部分。使用反斜杠继续命令适用于 shell,但不适用于 CMD。要么在一个逻辑行上键入不带反斜杠的字符(使用环绕),要么使用“帽子”^ 而不是反斜杠。
猜你喜欢
  • 2017-01-27
  • 1970-01-01
  • 2019-07-05
  • 2015-01-30
  • 1970-01-01
  • 2019-05-24
  • 2022-01-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多