如何从.SPC(代码签名证书)和.PKCS12(私钥)生成PKCS12(.p12)?

时间:2012-02-02 12:16:21

标签: code-signing pkcs#12 spc

我有GoDaddy的代码签名证书(SPC)文件。该文件是从现有私钥生成的:

-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEAvcG2SEalg9pvkTvtMI8cZg07tVA0RuK7LeGlFdk1smXgqrsH
.... snipped ....
MURwR0FXgNAuFNQ0yBNFNW2+o9uBceLuCSUalgi4pQw1uBmP5QkUYA==
-----END RSA PRIVATE KEY-----

我生成了证书签名请求并将其发送给GoDaddy:

-----BEGIN CERTIFICATE REQUEST-----
MIICiDCCAXACAQAwQzFBMD8GCSqGSIb3DQEJARYyYXBwbGVAdGVrNC1uZXdtZWRp
.... snipped ....
nJwd9pSDPuYaNHl33N1BJkXFusG7ta0D6UjisA==
-----END CERTIFICATE REQUEST-----

GoDaddy然后给我一个SPC文件。我的研究表明,通常你有一个SPC / PVK对,但显然我的私钥不是PVK类型。 我已经尝试了几种方法(pvkimprt,pvk2pfx,openssl,keytool),但似乎无法将我的密钥转换为PVK类型或我的SPC独立地转换为PKCS12类型而没有证书(SPC)和私钥在一个密钥中-store。

我似乎需要在一个步骤中执行此操作的命令是:     openssl pkcs12 -in cert_from_godaddy.spc -inkey private.key -export -out full_code_signing_chain.pkcs12

但是,运行我得到的:     将“屏幕”加载到随机状态 - 完成     没有证书与私钥匹配

但是,证书(SPC)用于私钥。我做错了什么?!

背景:我正在尝试生成.p12文件,签署Adobe AIR应用程序

3 个答案:

答案 0 :(得分:1)

说实话,我根本无法理解你想做什么。

您收回了SPC文件,该文件只是带有证书的#PKCS7 der编码。

您还拥有私钥。

您只需将证书导入pkcs12密钥库即可将签名证书与您的私钥一起使用。

答案 1 :(得分:0)

以下是我如何从GoDaddy的.spc文件创建.p12文件: 1.右键单击myCert.spc,安装证书(将.spc安装到Windows中) 2.双击myCert.spc(在certmgr中打开它),导出到.cer文件。 3.将.cer文件导入Firefox。 4.使用Firefox:备份刚刚导入的内容以创建.p12文件。

然后您可以使用该.p12文件对代码进行签名。

答案 2 :(得分:0)

要从私钥和SPC文件创建P12信任库,请使用OpenSSL执行以下步骤:

  1. (可选):从旧的P12信任库中提取私钥:
  2. openssl pkcs12 -in old.p12 -nocerts -out privateKey.pem

    1. 从SPC文件中提取证书链:
    2. openssl pkcs7 -inform DER -outform PEM -in godaddy.spc -print_certs > certificates.pem

      1. 创建新的P12信任库:
      2. openssl pkcs12 -export -out new.p12 -inkey privateKey.pem -in certificates.pem