【问题标题】:How to generate a PKCS12 (.p12) from a .SPC (code signing certificate) and .PKCS12 (private key)?如何从 .SPC(代码签名证书)和 .PKCS12(私钥)生成 PKCS12 (.p12)?
【发布时间】:2012-02-25 02:20:54
【问题描述】:

我有一个来自 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) 和私钥都在一个密钥中-商店。

我似乎需要一步完成的命令是: openssl pkcs12 -in cert_from_godaddy.spc -inkey private.key -export -out full_code_signing_chain.pkcs12

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

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

背景:我正在尝试生成一个 .p12 文件签名 Adob​​e AIR 应用程序

【问题讨论】:

    标签: code-signing pkcs#12 spc


    【解决方案1】:

    说实话,我完全无法理解您要做什么。

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

    你也有你的私钥。

    您需要做的就是将证书导入 pkcs12 密钥库,以使用您的私钥获得签名证书。

    【讨论】:

    • 虽然这本身并没有回答问题,但它实际上导致了答案......知道 SPC 只是 DER/PKCS7 我使用openssl pkcs7 -inform DER -on godaddy.spc -outform PEM -out out.p12 来获得我需要的东西。
    • @user72003 命令中有语法错误... -on 应该是 -in 给出:openssl pkcs7 -inform DER -in godaddy.spc -outform PEM -out out.p12
    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

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

      1. (可选):从旧的 P12 信任库中提取私钥:

      openssl pkcs12 -in old.p12 -nocerts -out privateKey.pem

      1. 从 SPC 文件中提取证书链:

      openssl pkcs7 -inform DER -outform PEM -in godaddy.spc -print_certs > certificates.pem

      1. 创建新的 P12 信任库:

      openssl pkcs12 -export -out new.p12 -inkey privateKey.pem -in certificates.pem

      【讨论】:

        猜你喜欢
        • 2019-06-01
        • 2014-01-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-07-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多